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.g...@gmx.de>
---
 lib/smbios.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/smbios.c b/lib/smbios.c
index 7b74971f68..a8c8519dcf 100644
--- a/lib/smbios.c
+++ b/lib/smbios.c
@@ -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) {
--
2.26.2

Reply via email to