qemu-config: fix memory leak on ferror()
The leak is basically impossible to reach, since the only common way
to get ferror(fp) is by passing a directory to -readconfig. In that
case, the error occurs before qdict is set to anything non-NULL.
However, it's theoretically possible to get there after an EIO.
Cc: armbru@redhat.com
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Fixes: f7544edcd3
("qemu-config: add error propagation to qemu_config_parse", 2021-03-06)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
e72f9524fe
commit
461fea9bf1
@ -414,7 +414,7 @@ static int qemu_config_foreach(FILE *fp, QEMUConfigCB *cb, void *opaque,
|
||||
if (ferror(fp)) {
|
||||
loc_pop(&loc);
|
||||
error_setg_errno(errp, errno, "Cannot read config file");
|
||||
return res;
|
||||
goto out_no_loc;
|
||||
}
|
||||
res = count;
|
||||
if (qdict) {
|
||||
@ -422,6 +422,7 @@ static int qemu_config_foreach(FILE *fp, QEMUConfigCB *cb, void *opaque,
|
||||
}
|
||||
out:
|
||||
loc_pop(&loc);
|
||||
out_no_loc:
|
||||
qobject_unref(qdict);
|
||||
return res;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user