diff options
author | Ben Gardner <gardner.ben@gmail.com> | 2015-12-09 11:24:35 -0600 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2015-12-16 01:20:00 +0100 |
commit | 6b07cba70fa25ebce4c764a0d7309c34e5964d74 (patch) | |
tree | eedef749f0d99220c11b65b9d80f5d8682b88265 | |
parent | 6f656138a63dbc4fe508eec19dc2f17d01e8d155 (diff) | |
download | coreboot-6b07cba70fa25ebce4c764a0d7309c34e5964d74.tar.xz |
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>
-rw-r--r-- | src/arch/x86/smbios.c | 7 |
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); |