From c8e5d82c97a1478b15d2f97ffebd9591e81663ba Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 22 Feb 2023 17:04:58 +0100 Subject: [PATCH] vmm: Modernize get_smbios_table() --- src/boot/efi/vmm.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/boot/efi/vmm.c b/src/boot/efi/vmm.c index 1e6d4de4a63..cfdd5b01a95 100644 --- a/src/boot/efi/vmm.c +++ b/src/boot/efi/vmm.c @@ -261,22 +261,18 @@ static const SmbiosHeader *get_smbios_table(uint8_t type, uint64_t *ret_size_lef /* Skip over string table. */ for (;;) { - while (size > 0 && *p != '\0') { - p++; - size--; - } - if (size == 0) + const uint8_t *e = memchr(p, 0, size); + if (!e) return NULL; - p++; - size--; - /* Double NUL terminates string table. */ - if (*p == '\0') { - if (size == 0) - return NULL; + if (e == p) {/* Double NUL byte means we've reached the end of the string table. */ p++; + size--; break; } + + size -= e + 1 - p; + p = e + 1; } } -- 2.47.3