The following commit has been merged in the iwj branch:
commit 393b1a9e4a1ecf60e0dd2c9af29433dfee215772
Author: Ian Jackson <[EMAIL PROTECTED]>
Date:   Thu Nov 1 16:17:12 2007 +0000

    * lstat correct conffile path even with --root.  Closes: #281057.
      Previously we would incorrectly ignore --root here.  The change is
      dpkg-1.13.22-oom-part2.patch from Egmont's June 2006 message to the
      bug report, adjusted to fit without the part1 patch.

diff --git a/debian/changelog b/debian/changelog
index db30d70..97a1353 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -70,6 +70,12 @@ dpkg (1.14.8) UNRELEASED; urgency=low
   * Treat successful calls to the postinst as always making the package
     installed.  Reverts Brian Carlson's patch from  #432893.
 
+  [ Egmont Koblinger ]
+  * lstat correct conffile path even with --root.  Closes: #281057.
+    Previously we would incorrectly ignore --root here.  The change is
+    dpkg-1.13.22-oom-part2.patch from Egmont's June 2006 message to the
+    bug report, adjusted to fit without the part1 patch.
+
  -- Raphael Hertzog <[EMAIL PROTECTED]>  Mon, 08 Oct 2007 20:49:51 +0200
 
 dpkg (1.14.8~newshlib) experimental; urgency=low
diff --git a/src/processarc.c b/src/processarc.c
index 6e14c33..31629da 100644
--- a/src/processarc.c
+++ b/src/processarc.c
@@ -60,7 +60,7 @@ void process_archive(const char *filename) {
   static char *cidirbuf=0, *reasmbuf=0;
   static struct fileinlist *newconffiles, *newfileslist;
   static enum pkgstatus oldversionstatus;
-  static struct varbuf infofnvb, fnvb, depprobwhy;
+  static struct varbuf infofnvb, fnvb, cfnvb, depprobwhy;
   static struct tarcontext tc;
   
   int c1, r, admindirlen, i, infodirlen, infodirbaseused, status;
@@ -681,7 +681,12 @@ void process_archive(const char *filename) {
       for (cfile= newfileslist; cfile; cfile= cfile->next) {
        if (!cfile->namenode->filestat) {
          cfile->namenode->filestat= nfmalloc(sizeof(struct stat));
-         if (lstat(cfile->namenode->name, cfile->namenode->filestat)) {
+         varbufreset(&cfnvb);
+         varbufaddstr(&cfnvb,instdir);
+         varbufaddc(&cfnvb,'/');
+         varbufaddstr(&cfnvb,cfile->namenode->name);
+         varbufaddc(&cfnvb,0);
+         if (lstat(cfnvb.buf, cfile->namenode->filestat)) {
            if (!(errno == ENOENT || errno == ELOOP || errno == ENOTDIR))
              ohshite(_("unable to stat other new file `%.250s'"),
                      cfile->namenode->name);

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to