Don't pass NULL to yajl_free()

Unfortunately, yajl_free() is not NOP on NULL. It really does
expect a valid pointer. Therefore, check whether the pointer we
want to pass to it is NULL or not.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Michal Privoznik
2020-03-30 10:37:09 +02:00
parent e4bf03b8ff
commit de1ac5930a
3 changed files with 5 additions and 3 deletions

View File

@@ -1838,7 +1838,7 @@ virJSONValueFromString(const char *jsonstring)
if (!hand) { if (!hand) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to create JSON parser")); _("Unable to create JSON parser"));
goto cleanup; return NULL;
} }
/* Yajl 2 is nice enough to default to rejecting trailing garbage. */ /* Yajl 2 is nice enough to default to rejecting trailing garbage. */

View File

@@ -426,7 +426,8 @@ findLeases(const char *file,
*addrs = NULL; *addrs = NULL;
*naddrs = 0; *naddrs = 0;
} }
yajl_free(parser); if (parser)
yajl_free(parser);
free(parserState.entry.ipaddr); free(parserState.entry.ipaddr);
free(parserState.entry.macaddr); free(parserState.entry.macaddr);
free(parserState.entry.hostname); free(parserState.entry.hostname);

View File

@@ -278,7 +278,8 @@ findMACs(const char *file,
*macs = NULL; *macs = NULL;
*nmacs = 0; *nmacs = 0;
} }
yajl_free(parser); if (parser)
yajl_free(parser);
for (i = 0; i < parserState.entry.nmacs; i++) for (i = 0; i < parserState.entry.nmacs; i++)
free(parserState.entry.macs[i]); free(parserState.entry.macs[i]);
free(parserState.entry.macs); free(parserState.entry.macs);