[PATCH] IOMUX: Fix access past end of console_devices

Sean Anderson seanga2 at gmail.com
Wed Mar 30 18:49:02 CEST 2022


We should only access console_devices[file][i] once we have checked that
i < cd_count[file]. Otherwise, we will access uninitialized memory at the end of
the loop. console_devices[file][i] should not be NULL, but putting the
assignment in the loop condition allows us to ensure that i is checked
beforehand. This isn't a bug, but it does make valgrind stop complaining.

Fixes: 400797cad3 ("IOMUX: Split out for_each_console_dev() helper macro")
Signed-off-by: Sean Anderson <seanga2 at gmail.com>
---

 include/iomux.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/include/iomux.h b/include/iomux.h
index 37f5f6dee6..1046df133b 100644
--- a/include/iomux.h
+++ b/include/iomux.h
@@ -25,9 +25,8 @@ extern struct stdio_dev **console_devices[MAX_FILES];
 extern int cd_count[MAX_FILES];
 
 #define for_each_console_dev(i, file, dev)		\
-	for (i = 0, dev = console_devices[file][i];	\
-	     i < cd_count[file];			\
-	     i++, dev = console_devices[file][i])
+	for (i = 0; i < cd_count[file] &&		\
+		(dev = console_devices[file][i]); i++)
 
 int iomux_match_device(struct stdio_dev **, const int, struct stdio_dev *);
 int iomux_doenv(const int, const char *);
-- 
2.35.1



More information about the U-Boot mailing list