smbios: empty strings in smbios_add_string()
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 1 Jun 2020 13:44:00 +0000 (15:44 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 5 Jun 2020 02:04:41 +0000 (04:04 +0200)
smbios_add_string() cannot deal with empty strings. This leads to incorrect
property values and invalid tables. E.g. for the pine64-lts_defconfig
CONFIG_SMBIOS_MANUFACTURER="". Linux command dmidecode shows:

Table 1:
    Manufacturer: sunxi
    Product Name: sunxi

Table 3:
    Invalid entry length (2). DMI table is broken! Stop.

Replace empty strings by "Unknown".

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/smbios.c

index 7b74971f68783205c2dfaab9e5a30f24b72139f4..11790443e1a9fed505220e526009d9b0edf273f6 100644 (file)
@@ -31,6 +31,8 @@ static int smbios_add_string(char *start, const char *str)
 {
        int i = 1;
        char *p = start;
+       if (!*str)
+               str = "Unknown";
 
        for (;;) {
                if (!*p) {