]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
cmd: smbios: replace missing string by 'Not Specified'
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Mon, 29 Jan 2024 17:01:27 +0000 (18:01 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 2 Feb 2024 18:56:54 +0000 (19:56 +0100)
A missing string value is indicated by a string index of 0. In this case
print 'Not Specified' like the Linux dmidecode command does.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
cmd/smbios.c

index 62935ecd1a23ba60198daed13348773793b86f52..95bdff602683c0145cd5e5e9071941a426466cbd 100644 (file)
@@ -25,6 +25,10 @@ static const char *smbios_get_string(void *table, int index)
 {
        const char *str = (char *)table +
                          ((struct smbios_header *)table)->length;
+       static const char fallback[] = "Not Specified";
+
+       if (!index)
+               return fallback;
 
        if (!*str)
                ++str;
@@ -41,7 +45,7 @@ static struct smbios_header *next_table(struct smbios_header *table)
        if (table->type == SMBIOS_END_OF_TABLE)
                return NULL;
 
-       str = smbios_get_string(table, 0);
+       str = smbios_get_string(table, -1);
        return (struct smbios_header *)(++str);
 }