diff options
| author | Sean Anderson <[email protected]> | 2022-04-06 14:36:35 -0400 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2022-04-19 14:52:34 -0400 |
| commit | 9dc775aabb73b1d587c7fcfca2ed7b0559576807 (patch) | |
| tree | 70b9a1d4af7cad7328f0c610657a4fc90e51d1f9 /include | |
| parent | 24c904f309f820f8aef4d6364e7bf584d70c0cad (diff) | |
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 <[email protected]>
Reviewed-by: Andrew Scull <[email protected]>
Acked-by: Andy Shevchenko <[email protected]>
Diffstat (limited to 'include')
| -rw-r--r-- | include/iomux.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/iomux.h b/include/iomux.h index 37f5f6dee69..35caa697ebf 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 *); |
