develooper Front page | perl.perl5.porters | Postings from May 2003

Re: [perl #22266] Perl segfaults on erroneous attempts to un-use a source filter

Thread Previous
From:
Nicholas Clark
Date:
May 21, 2003 11:14
Subject:
Re: [perl #22266] Perl segfaults on erroneous attempts to un-use a source filter
Message ID:
20030521191424.L1149@plum.flirble.org
On Wed, May 21, 2003 at 11:00:01AM -0000, drc@inweb.co.uk (via RT) wrote:

> This is a bug report for perl from drc@inweb.co.uk,
> generated with the help of perlbug 1.33 running under perl v5.6.1.
> 
> 
> -----------------------------------------------------------------
> 
> drc:~$ cat Filter/MyFilter.pm
> package Filter::MyFilter;
> 
> use Filter::Simple sub {
>         # this filter does nothing
> };
> 
> 1;
> 
> drc:~$ perl -e "use Filter::MyFilter;no Filter::MyFilter"
> Segmentation fault

It's still present in 5.8.0:

$ valgrind perl5.8.0 -e "use Filter::MyFilter;no Filter::MyFilter"        
==901== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==901== Copyright (C) 2002, and GNU GPL'd, by Julian Seward.
==901== Using valgrind-1.9.6, a program instrumentation system for x86-linux.
==901== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward.
==901== Estimated CPU clock rate is 1532 MHz
==901== For more details, rerun with: -v
==901== 
==901== Invalid write of size 4
==901==    at 0x41AB1B11: XS_Filter__Util__Call_filter_del (Call.xs:238)
==901==    by 0x80C1D20: Perl_pp_entersub (pp_hot.c:2773)
==901==    by 0x80AD95D: Perl_runops_debug (dump.c:1398)
==901==    by 0x805FF71: S_call_body (perl.c:2045)
==901==    Address 0x2C is not stack'd, malloc'd or free'd
Segmentation fault

but it is fixed in 5.8.1 to-be

]$ valgrind ./perl -Ilib -e "use Filter::MyFilter;no Filter::MyFilter"
==930== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==930== Copyright (C) 2002, and GNU GPL'd, by Julian Seward.
==930== Using valgrind-1.9.6, a program instrumentation system for x86-linux.
==930== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward.
==930== Estimated CPU clock rate is 1546 MHz
==930== For more details, rerun with: -v
==930==
==930== valgrind's libpthread.so: KLUDGED call to: siglongjmp (cleanup handlers are ignored)
==930==
==930== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==930== malloc/free: in use at exit: 893558 bytes in 20302 blocks.
==930== malloc/free: 34135 allocs, 13833 frees, 13818529 bytes allocated.
==930== For a detailed leak analysis,  rerun with: --leak-check=yes
==930== For counts of detected errors, rerun with: -v

The obvious next question is "when will 5.8.1 be finished?"
Jarkko is more very quiet than usual whenever that is asked.

Nicholas Clark

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About