virSysinfoParseX86BaseBoard: Free memory upfront if no board detected

If no board was detected then VIR_REALLOC_N() done at the end of
the function will actually free the memory (because nborads ==
0), but @boards will be set to a non-NULL pointer. This makes it
unnecessary harder for a caller to see if any board was detected.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2019-05-09 15:59:33 +02:00
parent c57b205ccf
commit ac10f838f9

View File

@ -844,8 +844,12 @@ virSysinfoParseX86BaseBoard(const char *base,
nboards--;
}
/* This is safe, as we can be only shrinking the memory */
ignore_value(VIR_REALLOC_N(boards, nboards));
if (nboards == 0) {
VIR_FREE(boards);
} else {
/* This is safe, as we can be only shrinking the memory */
ignore_value(VIR_REALLOC_N(boards, nboards));
}
*baseBoard = boards;
*nbaseBoard = nboards;