From 599f1ec818d50ffc9690fea8c03b5fe278f30ed4 Mon Sep 17 00:00:00 2001 From: Vit Mojzis Date: Wed, 7 Dec 2022 09:19:29 +0100 Subject: [PATCH] libselinux/restorecon: Fix memory leak - xattr_value Fix memory leak introduced by commit 9a04499cebedac3f585c0240e6cf68f786ae62b7 libselinux: Ignore missing directories when -i is used Error: RESOURCE_LEAK: selinux_restorecon.c:804: alloc_fn: Storage is returned from allocation function "malloc". selinux_restorecon.c:804: var_assign: Assigning: "xattr_value" = storage returned from "malloc(fc_digest_len)". selinux_restorecon.c:825: leaked_storage: Variable "xattr_value" going out of scope leaks the storage it points to. Resolves: rhbz#2137965 --- libselinux/src/selinux_restorecon.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c index 2ff73db6..b3702764 100644 --- a/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c @@ -822,6 +822,7 @@ int selinux_restorecon(const char *pathname_orig, free(basename_cpy); /* missing parent directory */ if (flags.ignore_noent && errno == ENOENT) { + free(xattr_value); return 0; } goto realpatherr; @@ -838,6 +839,7 @@ int selinux_restorecon(const char *pathname_orig, if (!pathdnamer) { free(basename_cpy); if (flags.ignore_noent && errno == ENOENT) { + free(xattr_value); return 0; } goto realpatherr; -- 2.37.3