diff -Nru dpkg-1.18.10ubuntu1/debian/changelog dpkg-1.18.10ubuntu2/debian/changelog --- dpkg-1.18.10ubuntu1/debian/changelog 2016-08-12 19:39:00.000000000 +0200 +++ dpkg-1.18.10ubuntu2/debian/changelog 2017-03-16 16:15:19.000000000 +0100 @@ -1,3 +1,11 @@ +dpkg (1.18.10ubuntu2) unstable; urgency=medium + + * src/archives.c: + - fix incorrect checking of conffile when using --root=/dir + (LP: #1673247) + + -- Michael Vogt Thu, 16 Mar 2017 16:15:19 +0100 + dpkg (1.18.10ubuntu1) yakkety; urgency=medium * Merge from Debian testing; remaining Ubuntu changes: diff -Nru dpkg-1.18.10ubuntu1/src/archives.c dpkg-1.18.10ubuntu2/src/archives.c --- dpkg-1.18.10ubuntu1/src/archives.c 2016-07-08 01:36:47.000000000 +0200 +++ dpkg-1.18.10ubuntu2/src/archives.c 2017-03-16 16:15:12.000000000 +0100 @@ -656,7 +656,7 @@ int tarobject(void *ctx, struct tar_entry *ti) { - static struct varbuf conffderefn, symlinkfn; + static struct varbuf conffderefn, symlinkfn, conffvb; const char *usename; struct filenamenode *usenode; @@ -871,7 +871,11 @@ conff = conff->next) { if (!conff->obsolete) continue; - if (stat(conff->name, &stabtmp)) { + varbuf_reset(&conffvb); + varbuf_add_str(&conffvb, instdir); + varbuf_add_str(&conffvb, conff->name); + varbuf_end_str(&conffvb); + if (stat(conffvb.buf, &stabtmp)) { if (errno == ENOENT || errno == ENOTDIR || errno == ELOOP) continue; else