Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Apr 8, 2009
  1. @rgs

    Use of freed comppad array during clear_yystack()

    Marcus Holland-Moritz authored rgs committed
    Message-ID: <20081026231720.34258457@r2d2>
    Patch description from the original email :
    I tried to make tests pass on a perl built with -DPERL_POISON,
    as some tests were dying with segfaults. They all originated
    from the same source: clear_yystack() after a compile error. [...]
    As far as I can see, after croaking the newly
    created CV is destroyed and its pad is undef'd. [...]
    This will SvREFCNT_dec PL_comppad and set PL_comppad to NULL.
    However, later, in clear_yystack(), when the ops are freed, the
    old PL_comppad is restored by PAD_RESTORE_LOCAL, as a reference
    is still in ps->comppad. But now the pad AV is already dead.
    Normally (i.e. without PERL_POISON), the dead AV will have
    AvARRAY(av) set to NULL by av_undef(). So PAD_RESTORE_LOCAL will
    actually set PL_curpad to NULL, and thus pad_free() will not
    attempt to do anything.
    But with PERL_POISON, the storage for AvARRAY(av) (i.e. sv_u)
    will be reused for chaining the free SV heads in the arena
    (as opposed to SvANY(sv) in case of !PERL_POISON). This means
    that PAD_RESTORE_LOCAL will find AvARRAY(av) non-NULL and will
    set PL_curpad to that value, finally causing the segfault in
    While I think I understand what's going on, I don't have the
    slightest clue how to properly fix this. Given that it's not
    a problem only under PERL_POISON, but always (as dead SV heads
    are being used), I think it should ultimately be fixed.
    The only thing I can offer right now is a patch to make it
    work with PERL_POISON as good (or as bad) as without by
    making PAD_RESTORE_LOCAL explicitly check if the pad passed
    in is already dead and refusing to use it if it is.
Commits on Oct 27, 2008
  1. Add MUTABLE_AV(), and remove (AV *) casts from headers.

    Nicholas Clark authored
    p4raw-id: //depot/perl@34608
  2. Add a macro MUTABLE_PTR(p), which on (non-pedantic) gcc will not cast

    Nicholas Clark authored
    away const, returning a void *. Add MUTABLE_SV(sv) which uses this, and
    replace all (SV *) casts either with MUTABLE_SV(sv), or (const SV *).
    This probably still needs some work - assigning to SvPVX() and SvRV()
    is now likely to generate a casting error. The core doesn't do this.
    But as-is it's finding bugs that can be fixed.
    p4raw-id: //depot/perl@34605
Commits on Oct 25, 2008
  1. Update copyright years.

    Nicholas Clark authored
    p4raw-id: //depot/perl@34585
Commits on Jun 8, 2008
  1. @rurban @rgs

    Re: [PATCH] readable assertion names, now the rest

    rurban authored rgs committed
    From: "Reini Urban" <>
    Message-ID: <>
    p4raw-id: //depot/perl@34030
Commits on Jan 16, 2008
  1. @rgs

    A couple of POD fixes by Steven Schubiger

    rgs authored
    p4raw-id: //depot/perl@32982
Commits on Jan 1, 2008
  1. Add editor blocks to some header files.

    Marcus Holland-Moritz authored
    p4raw-id: //depot/perl@32793
Commits on Jan 5, 2007
  1. @rgs

    Update copyright years in .h files. Also, in .pl

    rgs authored
    files that generate .h files, so they'll be ready
    next time.
    p4raw-id: //depot/perl@29695
Commits on Jan 3, 2007
  1. Rename OURSTASH to SvOURSTASH and OURSTASH_set to SvOURSTASH_set.

    Nicholas Clark authored
    p4raw-id: //depot/perl@29679
Commits on Dec 28, 2006
  1. With PAD_COMPNAME_GEN in SvUVX, SvCUR is trustworthy once more.

    Nicholas Clark authored
    p4raw-id: //depot/perl@29633
  2. Move PAD_COMPNAME_GEN from SvCUR to SvUVX.

    Nicholas Clark authored
    p4raw-id: //depot/perl@29632
  3. Move PAD_FAKELEX_ANON and PAD_FAKELEX_MULTI to pad.h, export them via

    Nicholas Clark authored, so that B::Concise doesn't need to hard code magic numbers.
    p4raw-id: //depot/perl@29631
  4. Move the low/high cop sequences from NVX/IVX to a two U32 structure

    Nicholas Clark authored
    in the xnv union. This frees up IVX for the PL_generation code, which
    in turn will allow SvCUR to return to its real purpose.
    p4raw-id: //depot/perl@29630
  5. Abstract the pad code's overloaded use of SvNVX and SvIVX into

    Nicholas Clark authored
    p4raw-id: //depot/perl@29629
Commits on Apr 10, 2006
  1. @jhi

    es: quiet some warnings (with a free AIX cpp insanity avoidance tip)

    jhi authored Nicholas Clark committed
    Message-ID: <>
    Date: Sat, 08 Apr 2006 09:58:43 +0300
    p4raw-id: //depot/perl@27754
Commits on Mar 8, 2006
  1. Add MAD changes to pad code (new function Perl_pad_peg)

    Nicholas Clark authored
    p4raw-id: //depot/perl@27419
Commits on Feb 24, 2006
  1. Replace usage of GvSTASH for storing the stash of C<our> with

    Nicholas Clark authored
    OURSTASH. Set the stash with OURSTASH_SET.
    p4raw-id: //depot/perl@27306
  2. As SVs can't both be in a pad, and the name of a variable in the pad,

    Nicholas Clark authored
    overlay SVs_PADTMP with SVpad_TYPED and SVs_PADMY with SVpad_OUR.
    p4raw-id: //depot/perl@27297
Commits on Feb 23, 2006
  1. Replace direct flags tests & manipulations for SVpad_TYPED and

    Nicholas Clark authored
    SVpad_OUR with macros SvPAD_TYPED(), SvPAD_OUR() etc, to abstract
    away the flags bits acutally used to store this information.
    p4raw-id: //depot/perl@27294
Commits on Feb 20, 2006
  1. @rgs

    More NullXXX macro removal from Andy Lester

    rgs authored
    p4raw-id: //depot/perl@27238
Commits on Feb 3, 2006
  1. Re: [PATCH] s/Null(gv|hv|sv)/NULL/g

    Steven Schubiger authored Nicholas Clark committed
    Message-ID: <>
    Date: Fri, 3 Feb 2006 16:24:49 +0100
    p4raw-id: //depot/perl@27065
Commits on Jan 8, 2006
  1. Update copyright with the 2 years where changes were made.

    Nicholas Clark authored
    p4raw-id: //depot/perl@26737
Commits on Jul 28, 2005
  1. @rgs

    Sync change 25229 to .h source files

    rgs authored
    p4raw-id: //depot/perl@25233
Commits on Jul 1, 2005
  1. the PAD_SET_CUR macro expanded too much for AIX compilers

    Dave Mitchell authored
    p4raw-id: //depot/perl@25042
Commits on Apr 19, 2005
  1. @petdance

    pad_compname_type(), takes care of a clunky macro

    petdance authored Dave Mitchell committed
    Message-Id:  <>
    p4raw-id: //depot/perl@24256
  2. @smpeters

    Refactoring to Sv*_set() macros - patch #5

    smpeters authored Nicholas Clark committed
    Message-ID: <>
    Date: Mon, 18 Apr 2005 19:09:25 -0500
    p4raw-id: //depot/perl@24248
Commits on Apr 6, 2005
  1. Casting to/from (void *) sufficient to make a C++ compiler happy.

    Nicholas Clark authored
    p4raw-id: //depot/perl@24175
Commits on Oct 16, 2003
  1. Ensure PL_comppad/curpad point to PL_main_cv's padlist when

    Dave Mitchell authored
    PL_main_root is freed; this may not have been be the case if a
    thread other than the main one is the last to be destroyed
    p4raw-id: //depot/perl@21470
Commits on Apr 16, 2003
  1. @jhi

    Fix up Larry's copyright statements to my best knowledge.

    jhi authored
    (Lots of Perl 5 source code archaeology was involved.)
    Larry didn't make strangled noises when I showed him
    the patch, either :-)
    p4raw-id: //depot/perl@19242
Commits on Mar 2, 2003
  1. @hvds

    Reverse copyright update (#18801) for files not changed in 2003.

    hvds authored
    p4raw-id: //depot/perl@18807
  2. @hvds

    Update all copyrights to 2003, from Jarkko

    hvds authored
    p4raw-id: //depot/perl@18801
Commits on Dec 17, 2002
  1. @hvds

    Re: [ enums are not nums]

    Dave Mitchell authored hvds committed
    Message-ID: <>
    p4raw-id: //depot/perl@18311
Commits on Nov 12, 2002
  1. @rgs

    Re: threads and Win2000 (Smoke 18064 FAIL(F) MSWin32 5.0 W2000Pro)

    Dave Mitchell authored rgs committed
    Message-ID: <>
    p4raw-id: //depot/perl@18142
Commits on Oct 22, 2002
  1. @hvds

    PL_curpad == AvARRAY(PL_comppad) always

    Dave Mitchell authored hvds committed
    Message-ID: <>
    p4raw-id: //depot/perl@18048
Commits on Oct 4, 2002
  1. @Tux

    Non ANSI feature detection in enum

    Tux authored
    p4raw-id: //depot/perl@17975
Something went wrong with that request. Please try again.