mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
nss: Don't leak memory on parse error
If yajl_parse() fails, we try to print an error message. For that, yajl_get_error() is used. However, its documentation say that caller is also responsible for freeing the memory it allocates by using yajl_free_error(). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
fd21db659d
commit
0dc84c347a
@ -399,9 +399,10 @@ findLeases(const char *file,
|
||||
|
||||
if (yajl_parse(parser, (const unsigned char *)line, rv) !=
|
||||
yajl_status_ok) {
|
||||
ERROR("Parse failed %s",
|
||||
yajl_get_error(parser, 1,
|
||||
(const unsigned char*)line, rv));
|
||||
unsigned char *err = yajl_get_error(parser, 1,
|
||||
(const unsigned char*)line, rv);
|
||||
ERROR("Parse failed %s", (const char *) err);
|
||||
yajl_free_error(parser, err);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
@ -252,9 +252,10 @@ findMACs(const char *file,
|
||||
|
||||
if (yajl_parse(parser, (const unsigned char *)line, rv) !=
|
||||
yajl_status_ok) {
|
||||
ERROR("Parse failed %s",
|
||||
yajl_get_error(parser, 1,
|
||||
(const unsigned char*)line, rv));
|
||||
unsigned char *err = yajl_get_error(parser, 1,
|
||||
(const unsigned char*)line, rv);
|
||||
ERROR("Parse failed %s", (const char *) err);
|
||||
yajl_free_error(parser, err);
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user