summaryrefslogtreecommitdiff
path: root/backport-Fix-an-ancient-memleak-on-caps-parsing-add-tests.patch
blob: bc0dd4d48f6e984fc4a87090fbc1cf8bf1a4c446 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 case depends on the gcc.
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