37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
From 726ae2686cc74889671adf57d3e2b4560e62892a Mon Sep 17 00:00:00 2001
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Wed, 21 Jul 2021 11:22:25 +0200
|
|
Subject: [PATCH 1/2] storage_driver: Unlock object on ACL fail in
|
|
storagePoolLookupByTargetPath
|
|
|
|
'virStoragePoolObjListSearch' returns a locked and refed object, thus we
|
|
must release it on ACL permission failure.
|
|
|
|
Fixes: 7aa0e8c0cb8
|
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1984318
|
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
|
---
|
|
src/storage/storage_driver.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
|
|
index 2db763caa5..d52d537152 100644
|
|
--- a/src/storage/storage_driver.c
|
|
+++ b/src/storage/storage_driver.c
|
|
@@ -1740,8 +1740,10 @@ storagePoolLookupByTargetPath(virConnectPtr conn,
|
|
storagePoolLookupByTargetPathCallback,
|
|
cleanpath))) {
|
|
def = virStoragePoolObjGetDef(obj);
|
|
- if (virStoragePoolLookupByTargetPathEnsureACL(conn, def) < 0)
|
|
+ if (virStoragePoolLookupByTargetPathEnsureACL(conn, def) < 0) {
|
|
+ virStoragePoolObjEndAPI(&obj);
|
|
return NULL;
|
|
+ }
|
|
|
|
pool = virGetStoragePool(conn, def->name, def->uuid, NULL, NULL);
|
|
virStoragePoolObjEndAPI(&obj);
|
|
--
|
|
2.27.0
|
|
|