xfsdump/0001-xfsdump-fix-memory-leak.patch

49 lines
1.2 KiB
Diff
Raw Normal View History

2024-03-21 11:21:36 +08:00
From 577e51a5abdda97ffce73637d67f5f88d7e93ac7 Mon Sep 17 00:00:00 2001
From: Pavel Reichl <preichl@redhat.com>
Date: Thu, 14 Dec 2023 21:25:49 +0100
Subject: xfsdump: Fix memory leak
Fix memory leak found by coverity.
>>> CID 1554295: Resource leaks (RESOURCE_LEAK)
>>> Failing to save or free storage allocated by strdup(path) leaks it.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Pavel Reichl <preichl@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
---
restore/tree.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/restore/tree.c b/restore/tree.c
index 6f3180f5..4707fdc9 100644
--- a/restore/tree.c
+++ b/restore/tree.c
@@ -4977,9 +4977,22 @@ static int
mkdir_r(char *path)
{
struct stat sbuf;
+ char *path_copy;
+ int ret;
if (stat(path, &sbuf) < 0) {
- if (mkdir_r(dirname(strdup(path))) < 0)
+ path_copy = strdup(path);
+ if (!path_copy) {
+ mlog(MLOG_TRACE | MLOG_ERROR | MLOG_TREE,
+ _("unable to allocate memory for a path\n"));
+ mlog_exit(EXIT_ERROR, RV_ERROR);
+ exit(1);
+ }
+
+ ret = mkdir_r(dirname(path_copy));
+ free(path_copy);
+
+ if (ret < 0)
return -1;
return mkdir(path, 0755);
}
--
cgit 1.2.3-korg