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