From ac10f838f94f0c5cc4601258b2a779dd5bcbab2a Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 9 May 2019 15:59:33 +0200 Subject: [PATCH] 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 --- src/util/virsysinfo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c index 9e60d1a553..6c3adc23ab 100644 --- a/src/util/virsysinfo.c +++ b/src/util/virsysinfo.c @@ -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;