aboutsummaryrefslogtreecommitdiff
path: root/include/iomux.h
diff options
context:
space:
mode:
authorSean Anderson <seanga2@gmail.com>2022-04-06 14:36:35 -0400
committerTom Rini <trini@konsulko.com>2022-04-19 14:52:34 -0400
commit9dc775aabb73b1d587c7fcfca2ed7b0559576807 (patch)
tree70b9a1d4af7cad7328f0c610657a4fc90e51d1f9 /include/iomux.h
parent24c904f309f820f8aef4d6364e7bf584d70c0cad (diff)
downloadu-boot-9dc775aabb73b1d587c7fcfca2ed7b0559576807.zip
u-boot-9dc775aabb73b1d587c7fcfca2ed7b0559576807.tar.gz
u-boot-9dc775aabb73b1d587c7fcfca2ed7b0559576807.tar.bz2
IOMUX: Fix access past end of console_devices
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@gmail.com> Reviewed-by: Andrew Scull <ascull@google.com> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'include/iomux.h')
-rw-r--r--include/iomux.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/iomux.h b/include/iomux.h
index 37f5f6d..35caa69 100644
--- a/include/iomux.h
+++ b/include/iomux.h
@@ -24,10 +24,10 @@ 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])
+#define for_each_console_dev(i, file, dev) \
+ 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 *);