rpm/backport-Fix-an-ancient-memleak-on-caps-parsing-add-tests.patch
gengqihu 0c01c6c354 Backport some patches from upstream
(cherry picked from commit 40d326a6fe54315b757473004c4d7157175cbb70)
2024-07-23 10:22:32 +08:00

37 lines
1.3 KiB
Diff

From a385821780804b558ae18aec820d127e4144fafd Mon Sep 17 00:00:00 2001
From: Panu Matilainen <pmatilai@redhat.com>
Date: Thu, 11 Apr 2024 12:08:04 +0300
Subject: [PATCH] Fix an ancient memleak on %caps() parsing, add tests
Conflict:don't modify tests because the test framework is changed and
the test case depends on the gcc, the current test framework reports an
error indicating that the gcc cannot be found.
Reference:https://github.com/rpm-software-management/rpm/commit/a385821780804b558ae18aec820d127e4144fafd
This leak has been there ever since rpm 4.7.0, so pretty close to 15
years. ASAN would've caught it, if it had it been tested. Oops.
Of course, in the fakechroot era we couldn't have tested installation
but we could've at least tested the parsing side.
Add tests for parsing, query and install functionality, and fix the
leak that is now very visible.
---
build/files.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/build/files.c b/build/files.c
index 14e4c55ef..b059458a1 100644
--- a/build/files.c
+++ b/build/files.c
@@ -228,6 +228,7 @@ static void copyFileEntry(FileEntry src, FileEntry dest)
static void FileEntryFree(FileEntry entry)
{
argvFree(entry->langs);
+ free(entry->caps);
memset(entry, 0, sizeof(*entry));
}
--
2.33.0