summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Armbruster2020-11-13 07:23:57 +0100
committerDaniel P. Berrangé2020-11-18 11:51:35 +0100
commit2b37e9f84372b5c98ef0ba114ce016953e47bc3c (patch)
treed75ad8bdebc971178de1c91a5dbe26db6c6a11ae
parentUpdate version for v5.2.0-rc2 release (diff)
downloadqemu-2b37e9f84372b5c98ef0ba114ce016953e47bc3c.tar.gz
qemu-2b37e9f84372b5c98ef0ba114ce016953e47bc3c.tar.xz
qemu-2b37e9f84372b5c98ef0ba114ce016953e47bc3c.zip
authz-list-file: Fix file read error handling
The Error ** argument must be NULL, &error_abort, &error_fatal, or a pointer to a variable containing NULL. Passing an argument of the latter kind twice without clearing it in between is wrong: if the first call sets an error, it no longer points to NULL for the second call. qauthz_list_file_complete() is wrong that way: it passes @errp to qauthz_list_file_complete() without checking for failure. If it runs into another failure, it trips error_setv()'s assertion. Reproducer: $ qemu-system-x86_64 -nodefaults -S -display none -object authz-list-file,id=authz0,filename= qemu-system-x86_64: ../util/error.c:59: error_setv: Assertion `*errp == NULL' failed. Aborted (core dumped) Fix it to check for failure. Fixes: 55d869846de802a16af1a50584c51737bd664387 Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r--authz/listfile.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/authz/listfile.c b/authz/listfile.c
index 24feac35ab..1421e674a4 100644
--- a/authz/listfile.c
+++ b/authz/listfile.c
@@ -128,6 +128,9 @@ qauthz_list_file_complete(UserCreatable *uc, Error **errp)
}
fauthz->list = qauthz_list_file_load(fauthz, errp);
+ if (!fauthz->list) {
+ return;
+ }
if (!fauthz->refresh) {
return;