fixed 577706 2.10 thanks This bug was resolved in 2.10 release. Thank you!
2010/4/13 Tomi Belan <tomi.be...@gmail.com> > Package: fakechroot > Version: 2.9 > > Programs under fakechroot can crash in execve() if all of the > "FAKECHROOT", "FAKECHROOT_BASE", "FAKECHROOT_VERSION", > "FAKECHROOT_EXCLUDE_PATH", "LD_LIBRARY_PATH", "LD_PRELOAD" variables > are set. An example of a program using execve() is gcc. This means > that unless FAKECHROOT_EXCLUDE_PATH (or another one of the variables > above) is unset, using gcc in fakechroot is impossible. > > How to test: > $ export FAKECHROOT_EXCLUDE_PATH="" > $ echo "" | fakechroot chroot / gcc -x c - > > What I expected to see (because / isn't writable): > /usr/bin/ld: cannot open output file a.out: Permission denied > collect2: ld returned 1 exit status > > What I saw instead: > *** glibc detected *** gcc: corrupted double-linked list: 0x08906190 *** > ======= Backtrace: ========= > /lib/libc.so.6(+0x6bb61)[0xb77b7b61] > /lib/libc.so.6(+0x6d411)[0xb77b9411] > /lib/libc.so.6(cfree+0x6d)[0xb77bc4ad] > gcc[0x805e08e] > gcc[0x8054b3b] > /lib/libc.so.6(__libc_start_main+0xe6)[0xb7762b86] > gcc[0x8049661] > ======= Memory map: ======== > 08048000-08079000 r-xp 00000000 08:03 54690299 /usr/bin/gcc > 08079000-0807b000 rw-p 00030000 08:03 54690299 /usr/bin/gcc > 088ff000-08920000 rw-p 00000000 00:00 0 [heap] > b7400000-b7421000 rw-p 00000000 00:00 0 > b7421000-b7500000 ---p 00000000 00:00 0 > b7551000-b756d000 r-xp 00000000 08:03 4486578 /usr/lib/libgcc_s.so.1 > b756d000-b756e000 rw-p 0001c000 08:03 4486578 /usr/lib/libgcc_s.so.1 > b756e000-b773b000 r--p 00000000 08:03 54577410 > /usr/lib/locale/locale-archive > b773b000-b7745000 r-xp 00000000 08:03 4303501 /lib/ > libnss_files-2.11.1.so > b7745000-b7746000 r--p 00009000 08:03 4303501 /lib/ > libnss_files-2.11.1.so > b7746000-b7747000 rw-p 0000a000 08:03 4303501 /lib/ > libnss_files-2.11.1.so > b7747000-b7748000 rw-p 00000000 00:00 0 > b7748000-b774a000 r-xp 00000000 08:03 4328458 /lib/libdl-2.11.1.so > b774a000-b774b000 r--p 00001000 08:03 4328458 /lib/libdl-2.11.1.so > b774b000-b774c000 rw-p 00002000 08:03 4328458 /lib/libdl-2.11.1.so > b774c000-b788d000 r-xp 00000000 08:03 4303498 /lib/libc-2.11.1.so > b788d000-b788f000 r--p 00140000 08:03 4303498 /lib/libc-2.11.1.so > b788f000-b7890000 rw-p 00142000 08:03 4303498 /lib/libc-2.11.1.so > b7890000-b7893000 rw-p 00000000 00:00 0 > b7893000-b789e000 r-xp 00000000 08:03 17009921 > /usr/lib/libfakeroot/fakechroot/libfakechroot.so > b789e000-b789f000 rw-p 0000a000 08:03 17009921 > /usr/lib/libfakeroot/fakechroot/libfakechroot.so > b789f000-b78a0000 rw-p 00000000 00:00 0 > b78a0000-b78a1000 r-xp 00000000 00:00 0 [vdso] > b78a1000-b78bd000 r-xp 00000000 08:03 4330037 /lib/ld-2.11.1.so > b78bd000-b78be000 r--p 0001b000 08:03 4330037 /lib/ld-2.11.1.so > b78be000-b78bf000 rw-p 0001c000 08:03 4330037 /lib/ld-2.11.1.so > bffc9000-bffde000 rw-p 00000000 00:00 0 [stack] > Aborted > > "gdb /bin/true" crashes similarly. > > The bug is caused by the newenvp array overflowing in execve() and can > be fixed by replacing "i" with "(i+1)" in execve()'s realloc() call. > > However, I found out that the bug is already fixed in SVN, which makes > me concerned that the fix wasn't released yet. If it's because the > trunk is unstable at the moment, please consider doing a separate > bugfix release. Building software is one of the main uses of > fakechroot, and being unable to use gcc (together with > FAKECHROOT_EXCLUDE_PATH) seriously reduces its functionality. > > I am using fakechroot-2.9 compiled from source on ArchLinux. > > > -- .''`. Piotr Roszatycki : :' : mailto:piotr.roszaty...@gmail.com `. `' mailto:dex...@debian.org `-