u-boot/include/iomux.h
Sean Anderson 9dc775aabb 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>
2022-04-19 14:52:34 -04:00

38 lines
950 B
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2008
* Gary Jennejohn, DENX Software Engineering GmbH, garyj@denx.de.
*/
#ifndef _IO_MUX_H
#define _IO_MUX_H
#include <stdio_dev.h>
/*
* Stuff required to support console multiplexing.
*/
/*
* Pointers to devices used for each file type. Defined in console.c
* but storage is allocated in iomux.c.
*/
extern struct stdio_dev **console_devices[MAX_FILES];
/*
* The count of devices assigned to each FILE. Defined in console.c
* and populated in iomux.c.
*/
extern int cd_count[MAX_FILES];
#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 *);
int iomux_replace_device(const int, const char *, const char *);
void iomux_printdevs(const int);
#endif /* _IO_MUX_H */