On 05/10/2007, chromatic <[EMAIL PROTECTED]> wrote:
> On Thursday 04 October 2007 23:10:14 [EMAIL PROTECTED] wrote:
>
> > Modified:
> >    trunk/src/pmc/parrotio.pmc
> >
> > Log:
> > [pmc] An input argument to the open() method was freed just before it was
> > used.  Thanks to Coverity (CID 131) for pointing this out!
>
> This one's a bit tricky, but the previous behavior was definitely wrong.
>
> > Modified: trunk/src/pmc/parrotio.pmc
> > ===========================================================================
> >=== --- trunk/src/pmc/parrotio.pmc     (original)
> > +++ trunk/src/pmc/parrotio.pmc        Thu Oct  4 23:10:13 2007
> > @@ -67,7 +67,6 @@
> >
> >          string_cstring_free(c_file);
> >          string_cstring_free(c_mode);
> > -        string_cstring_free(c_layer);
> >
> >          if (!pio || !PMC_struct_val(pio))
> >              return pmc_new(INTERP, enum_class_Undef);
>
> The string needs to get freed here too, or we could play fun single-exit-point
> games with goto.  I opted for the former in r21873.

Thanks chromatic!  I missed the thinking about the other return
statement and how that affects the free-ing.

Paul

Reply via email to