From 6b07cba70fa25ebce4c764a0d7309c34e5964d74 Mon Sep 17 00:00:00 2001 From: Ben Gardner Date: Wed, 9 Dec 2015 11:24:35 -0600 Subject: x86/smbios: Return index 0 for empty strings Section 6.1.3 (Text Strings) of the SMBIOS specification states: If a string field references no string, a null (0) is placed in that string field. Change smbios_add_string() to do that. Change-Id: I9c28cb89dcfe2c8ef2366c23ee6203e15b7c2513 Signed-off-by: Ben Gardner Reviewed-on: https://review.coreboot.org/12697 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/arch/x86/smbios.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 03d95e07f0..305ba40fe1 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -46,6 +46,13 @@ int smbios_add_string(char *start, const char *str) int i = 1; char *p = start; + /* + * Return 0 as required for empty strings. + * See Section 6.1.3 "Text Strings" of the SMBIOS specification. + */ + if (*str == '\0') + return 0; + for(;;) { if (!*p) { strcpy(p, str); -- cgit v1.2.3