Control: reassign -1 fakeroot

Hello,

On Thu, 12 Sep 2013 18:38:35 +0200
Artur Rona <ari-tc...@tlen.pl> wrote:

> The package fails to build in a test rebuild on at least i386.

Thanks. That seems to be a bug in fakeroot package which is used to
build Debian packages.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x40396dc0 (LWP 28255)]
0x4002b379 in cpyfakemstat (f=0xbfe0c38c, st=0xb0001) at ../communicate.c:94
94        if(s && *s)
(gdb) bt
#0  0x4002b379 in cpyfakemstat (f=0xbfe0c38c, st=0xb0001) at ../communicate.c:94
#1  0x4002be87 in send_get_stat (st=0xb0001) at ../communicate.c:94
#2  0x4002b2c5 in fts_read (ftsp=0x89f5598) at ../libfakeroot.c:819
#3  0x4013dc24 in TraverseUnixTree () from /usr/lib/i386-linux-gnu/libtcl8.5.so
#4  0x089f5598 in ?? ()
#5  0x00000026 in ?? ()
#6  0xbfe0c560 in ?? ()
#7  0x00000003 in ?? ()
#8  0xbfe0c600 in ?? ()
#9  0x40181d04 in tclFreeObjList () from /usr/lib/i386-linux-gnu/libtcl8.5.so
#10 0x00000001 in ?? ()
#11 0x40130514 in Tcl_StringCaseMatch () from 
/usr/lib/i386-linux-gnu/libtcl8.5.so
#12 0x00000000 in ?? ()

Apparently, fakeroot ignores the fact that ‘The contents of the fts_statp field 
are undefined’
(as manpage says). Somehow this code is disabled on non-Apple systems, which is 
(per my opinion)
wrong. A patch which fixes this segfault is attached.

-- 
WBR, Andrew
--- a/libfakeroot.c
+++ b/libfakeroot.c
@@ -1938,11 +1938,9 @@
   }
 #endif /* LIBFAKEROOT_DEBUGGING */
   r=next_fts_read(ftsp);
-#ifdef __APPLE__
   if (r && ((ftsp->fts_options & FTS_NOSTAT)
             || r->fts_info == FTS_NS || r->fts_info == FTS_NSOK))
     r->fts_statp = NULL;  /* Otherwise fts_statp may be a random pointer */
-#endif
   if(r && r->fts_statp) {  /* Should we bother checking fts_info here? */
     SEND_GET_STAT(r->fts_statp, _STAT_VER);
   }

Attachment: signature.asc
Description: PGP signature

Reply via email to