develooper Front page | perl.perl5.porters | Postings from June 2011

Re: [perl #91032] Invalid free in t/op/write.t

Thread Previous
From:
Dave Mitchell
Date:
June 13, 2011 03:01
Subject:
Re: [perl #91032] Invalid free in t/op/write.t
Message ID:
20110613100104.GF2877@iabyn.com
On Tue, May 31, 2011 at 08:33:07AM -0700, Father Chrysostomos via RT wrote:
> > > Hang about, I'm confused now. All the failures I saw were in
> > pp_parseform,
> > > related to buffer overruns in PL_formtarget. I never saw the
> > assertion
> > > failure in S_doparseform, and none of my commits would have
> > addressed such
> > > a failure.
> 
> I only got an assertion failure when I tried out Robin’s patch. So I
> didn’t push it.
> 
> > 
> > But regardless, Robin's patch looks successful.
> 
> ?
> 
> > 
> > Can anyone see the assertion failure since my series of commits?
> 
> No. Nor was there one before that.


Ok I've looked more closely at this, and I'm happy now that the buffer
estimation code as-is now is correct, and that Robin's patch was wrong.

Basically each of \n, @ and ^ can add up to 10 ops, while \0 can add 10
only if it's the last char in the string. So 12 + 10*(number of [\n@^]) is
right.

-- 
print+qq&$}$"$/$s$,$a$d$g$s$@$.$q$,$:$.$q$^$,$@$a$~$;$.$q$m&if+map{m,^\d{0\,},,${$::{$'}}=chr($"+=$&||1)}q&10m22,42}6:17a2~2.3@3;^2dg3q/s"&=~m*\d\*.*g

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