From: Marek Vasut <[email protected]> Sent: Sunday, September 7, 2025 3:01 AM > The isprint() checks printability across all 256 characters, some of the > upper 128 characters are printable and produce artifacts on UART. Call > isascii() first to only consider the bottom 7bit ASCII characters as > printable, and then check their printability using isprint(). This fixes > a rare misprint in case the ID page content is uninitialized or corrupted. > > Signed-off-by: Marek Vasut <[email protected]> > --- > Cc: Christoph Niedermaier <[email protected]> > Cc: Simon Glass <[email protected]> > Cc: Tom Rini <[email protected]> > --- > board/dhelectronics/common/dh_common.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/board/dhelectronics/common/dh_common.c > b/board/dhelectronics/common/dh_common.c > index aeabd617374..e7ee23aa8ce 100644 > --- a/board/dhelectronics/common/dh_common.c > +++ b/board/dhelectronics/common/dh_common.c > @@ -88,9 +88,9 @@ int dh_read_eeprom_id_page(u8 *eeprom_buffer, const char > *alias) > /* Validate header ID */ > if (eip->hdr.id[0] != 'D' || eip->hdr.id[1] != 'H' || eip->hdr.id[2] > != 'E') { > printf("%s: Error validating header ID! (got %c%c%c (0x%02x > 0x%02x 0x%02x) > != expected DHE)\n", > - __func__, isprint(eip->hdr.id[0]) ? eip->hdr.id[0] : > '.', > - isprint(eip->hdr.id[1]) ? eip->hdr.id[1] : '.', > - isprint(eip->hdr.id[2]) ? eip->hdr.id[2] : '.', > + __func__, (isascii(eip->hdr.id[0]) && > isprint(eip->hdr.id[0])) ? > eip->hdr.id[0] : '.', > + (isascii(eip->hdr.id[1]) && isprint(eip->hdr.id[1])) ? > eip- > >hdr.id[1] : '.', > + (isascii(eip->hdr.id[2]) && isprint(eip->hdr.id[2])) ? > eip- > >hdr.id[2] : '.', > eip->hdr.id[0], eip->hdr.id[1], eip->hdr.id[2]); > return -EINVAL; > }
Reviewed-by: Christoph Niedermaier <[email protected]>

