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>
This commit is contained in:
Ben Gardner 2015-12-09 11:24:35 -06:00 committed by Martin Roth
parent 6f656138a6
commit 6b07cba70f
1 changed files with 7 additions and 0 deletions

View File

@ -46,6 +46,13 @@ int smbios_add_string(char *start, const char *str)
int i = 1; int i = 1;
char *p = start; 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(;;) { for(;;) {
if (!*p) { if (!*p) {
strcpy(p, str); strcpy(p, str);