|
|
3cf992 |
From 357fc40405c4967654972ecdf0b210fed885185d Mon Sep 17 00:00:00 2001
|
|
|
3cf992 |
Message-Id: <357fc40405c4967654972ecdf0b210fed885185d@dist-git>
|
|
|
3cf992 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
3cf992 |
Date: Fri, 19 Mar 2021 11:51:58 +0100
|
|
|
3cf992 |
Subject: [PATCH] RHEL: virdevmapper: Don't leak DIR on OOM in
|
|
|
3cf992 |
virDMSanitizepath()
|
|
|
3cf992 |
MIME-Version: 1.0
|
|
|
3cf992 |
Content-Type: text/plain; charset=UTF-8
|
|
|
3cf992 |
Content-Transfer-Encoding: 8bit
|
|
|
3cf992 |
|
|
|
3cf992 |
This is a RHEL only patch, because it fixes a small issue in one
|
|
|
3cf992 |
of backported commits that was basically rewritten from scratch
|
|
|
3cf992 |
(v4.5.0-400-g6bf725c07c).
|
|
|
3cf992 |
|
|
|
3cf992 |
During the rewrite I've introduced a problem, in which opened
|
|
|
3cf992 |
/dev/mapper/ directory can leak if OOM happened afterwards.
|
|
|
3cf992 |
|
|
|
3cf992 |
Fixes: 6bf725c07c25b56937c494b6c7e83e6ca27ec54c
|
|
|
3cf992 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1933557
|
|
|
3cf992 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
3cf992 |
Message-Id: <c3ba31ab36478ea466128572aa53498555c7995f.1616151101.git.mprivozn@redhat.com>
|
|
|
3cf992 |
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
|
3cf992 |
---
|
|
|
3cf992 |
src/util/virdevmapper.c | 3 ++-
|
|
|
3cf992 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
3cf992 |
|
|
|
3cf992 |
diff --git a/src/util/virdevmapper.c b/src/util/virdevmapper.c
|
|
|
3cf992 |
index dcb3c08df5..33cde6ca0c 100644
|
|
|
3cf992 |
--- a/src/util/virdevmapper.c
|
|
|
3cf992 |
+++ b/src/util/virdevmapper.c
|
|
|
3cf992 |
@@ -216,7 +216,7 @@ virDMSanitizepath(const char *path)
|
|
|
3cf992 |
VIR_AUTOFREE(char *) tmp = NULL;
|
|
|
3cf992 |
|
|
|
3cf992 |
if (virAsprintf(&tmp, DEV_DM_DIR "/%s", ent->d_name) < 0)
|
|
|
3cf992 |
- return NULL;
|
|
|
3cf992 |
+ goto cleanup;
|
|
|
3cf992 |
|
|
|
3cf992 |
if (stat(tmp, &sb[1]) == 0 &&
|
|
|
3cf992 |
sb[0].st_rdev == sb[1].st_rdev) {
|
|
|
3cf992 |
@@ -225,6 +225,7 @@ virDMSanitizepath(const char *path)
|
|
|
3cf992 |
}
|
|
|
3cf992 |
}
|
|
|
3cf992 |
|
|
|
3cf992 |
+ cleanup:
|
|
|
3cf992 |
virDirClose(&dh);
|
|
|
3cf992 |
return ret;
|
|
|
3cf992 |
}
|
|
|
3cf992 |
--
|
|
|
3cf992 |
2.31.0
|
|
|
3cf992 |
|