Package: fakechroot
Version: 2.5-1.1.20070223-2
Severity: normal

(again, ignore the version as it's a local build with a bunch of
 previously submitted changes applied)

I don't see a reason not to let subsequent chroot() calls within an
already running fakechroot succeed - it's not like the fakeroot case
where there's a process to communicate, the entirety of the state is
in $FAKECHROOT_BASE, and that *already* has the right nesting
semantics.

This patch works for my own case (an obscure use of pbuilder inside of
pbuilder); basically, it drops the EFAULT test, adds comments as to
why other parts work, and uses next_getcwd (since $FAKECHROOT_BASE
is strictly unfake, so it shouldn't have narrow_chroot_path applied to
it.


Index: libfakechroot.c
===================================================================
--- libfakechroot.c     (revision 55507)
+++ libfakechroot.c     (working copy)
@@ -870,16 +875,15 @@
     char *envbuf;
 #endif
 
+    /* no reason to prevent further fakechroots... we just have to concatenate 
bases */
     fakechroot_path = getenv("FAKECHROOT_BASE");
-    if (fakechroot_path != NULL) {
-        return EFAULT;
-    }
 
+    /* this does the "expanded" chdir */
     if ((status = chdir(path)) != 0) {
         return status;
     }
     
-    if (getcwd(dir, FAKECHROOT_MAXPATH) == NULL) {
+    if (next_getcwd(dir, FAKECHROOT_MAXPATH) == NULL) {
        return EFAULT;
     }
 


-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.15-mc2
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages fakechroot depends on:
ii  libc6                 2.3.2.ds1-22sarge4 GNU C Library: Shared libraries an

-- debconf-show failed


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

Reply via email to