浏览代码

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
Guillem Jover 10 年之前
父节点
当前提交
1b33c6611f
共有 2 个文件被更改,包括 6 次插入1 次删除
  1. 5 0
      debian/changelog
  2. 1 1
      src/remove.c

+ 5 - 0
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:

+ 1 - 1
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);