From: Daan De Meyer Date: Wed, 22 Feb 2023 16:04:58 +0000 (+0100) Subject: vmm: Modernize get_smbios_table() X-Git-Tag: v254-rc1~1172^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c8e5d82c97a1478b15d2f97ffebd9591e81663ba;p=thirdparty%2Fsystemd.git vmm: Modernize get_smbios_table() --- 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; } }