[PATCH 2/2] board: dhelectronics: Use isascii() before isprint() in dh_read_eeprom_id_page()
Marek Vasut
marek.vasut at mailbox.org
Sun Sep 7 03:00:47 CEST 2025
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 <marek.vasut at mailbox.org>
---
Cc: Christoph Niedermaier <cniedermaier at dh-electronics.com>
Cc: Simon Glass <sjg at chromium.org>
Cc: Tom Rini <trini at konsulko.com>
---
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;
}
--
2.50.1
More information about the U-Boot
mailing list