mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-08 22:15:21 +00:00
sysinfo: fix illegal NULL return
If virSysinfoParse{BIOS,System,Processor,Memory}() can't find newline('\n'), these return NULL. This patch fixes this. Signed-off-by: Minoru Usui <usui@mxm.nes.nec.co.jp>
This commit is contained in:
parent
516235c037
commit
72882bc9d9
@ -132,6 +132,10 @@ virSysinfoParseBIOS(char *base, virSysinfoDefPtr ret)
|
||||
{
|
||||
char *cur, *eol = NULL;
|
||||
|
||||
if ((cur = strstr(base, "BIOS Information")) == NULL)
|
||||
return base;
|
||||
|
||||
base = cur;
|
||||
if ((cur = strstr(base, "Vendor: ")) != NULL) {
|
||||
cur += 8;
|
||||
eol = strchr(cur, '\n');
|
||||
@ -157,7 +161,7 @@ virSysinfoParseBIOS(char *base, virSysinfoDefPtr ret)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
return eol ? eol + 1 : NULL;
|
||||
return base + strlen("BIOS Information");
|
||||
|
||||
no_memory:
|
||||
return NULL;
|
||||
@ -168,9 +172,10 @@ virSysinfoParseSystem(char *base, virSysinfoDefPtr ret)
|
||||
{
|
||||
char *cur, *eol = NULL;
|
||||
|
||||
if ((base = strstr(base, "System Information")) == NULL)
|
||||
return 0;
|
||||
if ((cur = strstr(base, "System Information")) == NULL)
|
||||
return base;
|
||||
|
||||
base = cur;
|
||||
if ((cur = strstr(base, "Manufacturer: ")) != NULL) {
|
||||
cur += 14;
|
||||
eol = strchr(cur, '\n');
|
||||
@ -215,7 +220,7 @@ virSysinfoParseSystem(char *base, virSysinfoDefPtr ret)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
return eol ? eol + 1 : NULL;
|
||||
return base + strlen("System Information");
|
||||
|
||||
no_memory:
|
||||
return NULL;
|
||||
@ -314,9 +319,7 @@ virSysinfoParseProcessor(char *base, virSysinfoDefPtr ret)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (!eol)
|
||||
break;
|
||||
base = eol + 1;
|
||||
base += strlen("Processor Information");
|
||||
}
|
||||
|
||||
return base;
|
||||
@ -415,9 +418,7 @@ virSysinfoParseMemory(char *base, virSysinfoDefPtr ret)
|
||||
}
|
||||
|
||||
next:
|
||||
if (!eol)
|
||||
break;
|
||||
base = eol + 1;
|
||||
base += strlen("Memory Device");
|
||||
}
|
||||
|
||||
return base;
|
||||
|
Loading…
Reference in New Issue
Block a user