[PATCH v3] IOMUX: Fix buffer overflow in iomux_replace_device()

Yuichiro Goto goto at k-tech.co.jp
Mon Apr 26 01:08:03 CEST 2021


Use of strcat() against an uninitialized buffer would lead
to buffer overflow. This patch fixes it.

Fixes: 694cd5618c ("IOMUX: Introduce iomux_replace_device()")
Signed-off-by: Yuichiro Goto <goto at k-tech.co.jp>
Cc: Peter Robinson <pbrobinson at gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Cc: Nicolas Saenz Julienne <nsaenzjulienne at suse.de>
---

Changes for v3:
- Add a Fixes tag in commit message
- Refactor the patch per suggestion from Andy Shevchenko

Changes for v2:
- Add "IOMUX" in title

 common/iomux.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/common/iomux.c b/common/iomux.c
index b9088aa3b5..c428f7110a 100644
--- a/common/iomux.c
+++ b/common/iomux.c
@@ -158,8 +158,12 @@ int iomux_replace_device(const int console, const char *old, const char *new)
 			return -ENOMEM;
 		}
 
-		strcat(tmp, ",");
-		strcat(tmp, name);
+		if (arg) {
+			strcat(tmp, ",");
+			strcat(tmp, name);
+		}
+		else
+			strcpy(tmp, name);
 
 		arg = tmp;
 		size = strlen(tmp) + 1;
-- 
2.17.1



More information about the U-Boot mailing list