[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: more Perl ... fun



On Fri, 8 Nov 2002 15:58:29 +1100
Peter Zelezny <zed@linux.com> wrote:

> On Fri, 8 Nov 2002 04:46:38 +0000
> Lloyd Williams <binary_frog@chatcircuit.com> wrote:
> 
> > The second segfault (the one in perl_auto_load) is really strange.
> > Disassembling perl_auto_load shows a chunk of code towards the end
> > that isn't accounted for in the definition of perl_auto_load in
> > perl.c, somehow added by the perl #includes. A temporary kludge
> > fix for this would be to move the definition of perl_auto_load to
> > a separate source file, one which doesn't include anything from
> > perl. The attached patch does this. (You'll have to run `automake
> > --foreign' from the top-level directory before recompiling)
> 
> Makes you think that perl_auto_load is a macro in perl's headers,
> but I didn't find any sign of it:
> 
> /usr/lib/perl5/5.6.1/i386-linux/CORE$ grep perl_auto_load *
> /usr/lib/perl5/5.6.1/i386-linux/CORE$ 
> 
> Or maybe a symbol in the library itself?
> 
> /usr/lib/perl5/5.6.1/i386-linux/CORE$ nm libperl.a | grep perl_auto
> /usr/lib/perl5/5.6.1/i386-linux/CORE$ 
> 
> Could it be something added to 5.8.x? I don't get the perl_auto_load
> crash in 5.6.1.
> 

Ah, I think this is it. perl 5.8's XSUB.h defines readdir to
PerlDir_read. If you create a my_readdir function to wrap around
readdir before the perl includes, and call that instead of readdir, it
doesn't segfault. If you call perl_init before the readdir in
perl_auto_load, it doesn't segfault. This bug seems to be perl's
fault.

--
XChat-discuss: mailing list for XChat users
Archive:       http://mail.nl.linux.org/xchat-discuss/