develooper Front page | perl.perl5.porters | Postings from March 2001

Re: my purify runs with 5.6.1-to-be

Thread Previous | Thread Next
From:
Gurusamy Sarathy
Date:
March 16, 2001 13:16
Subject:
Re: my purify runs with 5.6.1-to-be
Message ID:
200103162115.f2GLFU516550@smtp3.ActiveState.com
On Fri, 16 Mar 2001 23:02:16 +0200, Radu Greab wrote:
>I don't see that on the Alpha I'm testing on with perl-5.6.1-T2. With
>perl-5.6.1-T2 and Sarathy's patch I get exactly five reproducible
>coredumps:
>op/taint.............FAILED at test 80
>lib/db-recno.........FAILED at test 0
>lib/findbin..........FAILED at test 0
>lib/ipc_sysv.........FAILED at test 0
>lib/parsewords.......FAILED at test 0
>
>What I found is that in clear_pmop PmopSTASH(cPMOPo) is corrupt, I
>guess because it was already cleared. HvPMROOT(pmstash) returns
>garbage and we get the coredump.
>
>Changing this line in Sarathy's patch from
>
> clear_pmop:
>+	{
>+	    HV *pmstash = PmopSTASH(cPMOPo);
>+	    if (pmstash) {
>
>to
>
>+	    if (pmstash && SvREFCNT(pmstash)) {
>
>stops the coredumps but I'm not sure if SvREFCNT(pmstash) is to be trusted
>if pmstash was already cleared.

I think you may be on the right track here.  I'd probably change
the patch to refcount PmopSTASH() instead.  (I was following the
lead of COPs in not refcounting it.)


Sarathy
gsar@ActiveState.com

Thread Previous | Thread Next


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