[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 1/4] authz-list-file: Fix file read error handling
From: |
Daniel P . Berrangé |
Subject: |
[PULL 1/4] authz-list-file: Fix file read error handling |
Date: |
Wed, 18 Nov 2020 12:49:08 +0000 |
From: Markus Armbruster <armbru@redhat.com>
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>
---
authz/listfile.c | 3 +++
1 file changed, 3 insertions(+)
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;
--
2.28.0