From d528083cae3492f9b9424f3c9830869af7b4cbd0 Mon Sep 17 00:00:00 2001 From: Luke Yang Date: Wed, 12 Jun 2024 15:55:37 -0400 Subject: [PATCH] repo: Fix `dir_or_file_path` memory leak Coverity points out that we have a memory leak from `g_strdup(dir_or_file_path)`. Make the duplication of the string a temporary variable that is freed using `g_autofree`. --- src/libostree/ostree-repo-static-delta-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libostree/ostree-repo-static-delta-core.c b/src/libostree/ostree-repo-static-delta-core.c index dc57a2f0..1a1b3309 100644 --- a/src/libostree/ostree-repo-static-delta-core.c +++ b/src/libostree/ostree-repo-static-delta-core.c @@ -409,7 +409,8 @@ ostree_repo_static_delta_execute_offline_with_signature (OstreeRepo *self, GFile return glnx_throw_errno_prefix (error, "openat(O_DIRECTORY)"); else { - g_autofree char *dir = dirname (g_strdup (dir_or_file_path)); + g_autofree char *tmpbuf = g_strdup (dir_or_file_path); + const char *dir = dirname (tmpbuf); basename = g_path_get_basename (dir_or_file_path); if (!glnx_opendirat (AT_FDCWD, dir, TRUE, &dfd, error))