From 1b33c6611fef5a8a370e8dd94b01114d6b33ad33 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Thu, 7 Jul 2016 22:27:42 +0200 Subject: dpkg: Use the conffile name instead of the real pathname it might refer to When activating file triggers on conffile purge, use the conffile name instead of the real pathname it might refer to. This fixes a segfault when using --instdir, or when the conffile has been moved around and replaced with a symlink to the target. Regression introduced in 2f065fc151ac4635ae40bd769d1be810e1222e05. Closes: #830267 Stable-Candidate: 1.17.x --- debian/changelog | 5 +++++ src/remove.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 762102384..84d7d4a9a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,11 @@ dpkg (1.18.10) UNRELEASED; urgency=medium [ Guillem Jover ] * Fix a short-lived memory leak in dpkg archive argument parsing. + * When activating file triggers on conffile purge, use the conffile name + instead of the real pathname it might refer to. This fixes a segfault + when using --instdir, or when the conffile has been moved around and + replaced with a symlink to the target. + Regression introduced in dpkg 1.18.8. Closes: #830267 * Perl modules: - Disable fixdebugpath feature on unsafe characters in the path. * Documentation: diff --git a/src/remove.c b/src/remove.c index d16454620..88479ea26 100644 --- a/src/remove.c +++ b/src/remove.c @@ -529,7 +529,7 @@ static void removal_bulk_remove_configfiles(struct pkginfo *pkg) { if (rc == -1) continue; - namenode = findnamenode(fnvb.buf, fnn_nonew); + namenode = findnamenode(conff->name, 0); usenode = namenodetouse(namenode, pkg, &pkg->installed); trig_path_activate(usenode, pkg); -- cgit v1.2.3