summaryrefslogtreecommitdiff
path: root/src/arch/x86/smbios.c
diff options
context:
space:
mode:
authorBen Gardner <gardner.ben@gmail.com>2015-12-09 11:24:35 -0600
committerMartin Roth <martinroth@google.com>2015-12-16 01:20:00 +0100
commit6b07cba70fa25ebce4c764a0d7309c34e5964d74 (patch)
treeeedef749f0d99220c11b65b9d80f5d8682b88265 /src/arch/x86/smbios.c
parent6f656138a63dbc4fe508eec19dc2f17d01e8d155 (diff)
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 <gardner.ben@gmail.com> Reviewed-on: https://review.coreboot.org/12697 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/arch/x86/smbios.c')
-rw-r--r--src/arch/x86/smbios.c7
1 files changed, 7 insertions, 0 deletions
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);