diff options
author | Allan McRae <allan@archlinux.org> | 2016-09-03 20:13:35 +1000 |
---|---|---|
committer | Andrew Gregory <andrew.gregory.8@gmail.com> | 2017-05-08 23:27:42 -0400 |
commit | 5a7204ee1874c2d826578089a9b4abecff0d9dc1 (patch) | |
tree | 9bd23d4dbb5be0eb4ac1a34b387827377abae76b | |
parent | d6b6896a132c53c3b078707b70e25c30c6e6ce3f (diff) | |
download | pacman-5a7204ee1874c2d826578089a9b4abecff0d9dc1.tar.xz |
Fix memory leak in remove_notify_needed_optdepends
Also add pactest which captures this leak when run under valgrind.
Reported-by: Sergey Petrenko
Signed-off-by: Allan McRae <allan@archlinux.org>
(cherry picked from commit fac4831a091eda447780d5d1e1e572b14ebb0338)
-rw-r--r-- | lib/libalpm/remove.c | 1 | ||||
-rw-r--r-- | test/pacman/tests/TESTS | 1 | ||||
-rw-r--r-- | test/pacman/tests/remove-optdepend-of-installed-package.py | 15 |
3 files changed, 17 insertions, 0 deletions
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index 45f7c2f4..173dbc69 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -189,6 +189,7 @@ static void remove_notify_needed_optdepends(alpm_handle_t *handle, alpm_list_t * }; EVENT(handle, &event); } + free(optstring); } } } diff --git a/test/pacman/tests/TESTS b/test/pacman/tests/TESTS index 45ebabb2..81078a58 100644 --- a/test/pacman/tests/TESTS +++ b/test/pacman/tests/TESTS @@ -109,6 +109,7 @@ TESTS += test/pacman/tests/querycheck002.py TESTS += test/pacman/tests/querycheck_fast_file_type.py TESTS += test/pacman/tests/reason001.py TESTS += test/pacman/tests/remove-assumeinstalled.py +TESTS += test/pacman/tests/remove-optdepend-of-installed-package.py TESTS += test/pacman/tests/remove-recursive-cycle.py TESTS += test/pacman/tests/remove001.py TESTS += test/pacman/tests/remove002.py diff --git a/test/pacman/tests/remove-optdepend-of-installed-package.py b/test/pacman/tests/remove-optdepend-of-installed-package.py new file mode 100644 index 00000000..4973df5f --- /dev/null +++ b/test/pacman/tests/remove-optdepend-of-installed-package.py @@ -0,0 +1,15 @@ +self.description = "Remove packages which is an optdepend of another package" + +p1 = pmpkg("dep") +self.addpkg2db("local", p1) + +p2 = pmpkg("pkg") +p2.optdepends = ["dep: for foobar"] +self.addpkg2db("local", p2) + +self.args = "-R %s" % p1.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("!PKG_EXIST=%s" % p1.name) +self.addrule("PKG_EXIST=%s" % p2.name) +self.addrule("PACMAN_OUTPUT=%s optionally requires %s" % (p2.name, p1.name)) |