
Backport the source patches from the version 7.0.0-3+deb11u3. [https://sources.debian.org/src/libvirt/7.0.0-3%2Bdeb11u3/debian/patches/] Refer to: CVE-2021-3631: https://nvd.nist.gov/vuln/detail/CVE-2021-3631 CVE-2021-3667: https://nvd.nist.gov/vuln/detail/CVE-2021-3667 CVE-2021-3975: https://nvd.nist.gov/vuln/detail/CVE-2021-3975 CVE-2021-4147: https://nvd.nist.gov/vuln/detail/CVE-2021-4147 CVE-2022-0897: https://nvd.nist.gov/vuln/detail/CVE-2022-0897 CVE-2024-1441: https://nvd.nist.gov/vuln/detail/CVE-2024-1441 CVE-2024-2494: https://nvd.nist.gov/vuln/detail/CVE-2024-2494 CVE-2024-2496: https://nvd.nist.gov/vuln/detail/CVE-2024-2496 Test Plan: Pass: downloader Pass: build-pkgs --clean --all Pass: build-image Pass: Debian AIO jenkins installation Closes-Bug: 2078664 Signed-off-by: Wentao Zhang <wentao.zhang@windriver.com> Change-Id: Ic2c0d6a8208b18ec4d1db2c07fc1fb2508cef183
37 lines
1.6 KiB
Diff
37 lines
1.6 KiB
Diff
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Wed, 21 Jul 2021 11:22:25 +0200
|
|
Subject: 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>
|
|
Origin: https://gitlab.com/libvirt/libvirt/-/commit/447f69dec47e1b0bd15ecd7cd49a9fd3b050fb87
|
|
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1984318
|
|
Bug-Debian: https://security-tracker.debian.org/tracker/CVE-2021-3667
|
|
Bug-Debian: https://bugs.debian.org/991594
|
|
---
|
|
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 16bc53a..2787c16 100644
|
|
--- a/src/storage/storage_driver.c
|
|
+++ b/src/storage/storage_driver.c
|
|
@@ -1739,8 +1739,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);
|