Branch: refs/heads/maint-5.38
  Home:   https://github.com/Perl/perl5
  Commit: 40764fbaa2fbbfa0dc131ae4717445a4014ab100
      
https://github.com/Perl/perl5/commit/40764fbaa2fbbfa0dc131ae4717445a4014ab100
  Author: Tony Cook <t...@develop-help.com>
  Date:   2024-12-30 (Mon, 30 Dec 2024)

  Changed paths:
    M MANIFEST
    M perly.act
    M perly.h
    M perly.tab
    M perly.y
    A t/lib/croak/parser

  Log Message:
  -----------
  perly LSTOPSUB: prevent a double op free between parse stack and CV

The reeproducer resulted in the "block" OP being both on the parser
stack and attacked to the CV.  If an error occurred while parsing the
rest of the list operator clean up would release the OP as attached
to the CV, and the same OP on the parse stack, resulting in a double
free.

It's unclear to me whether bison is intended to support modifying
the parse stack entry like this, but it appears to work here.

Fixes #21724

(MANIFEST, perly.y and t/lib/croak/parser manually cherry picked from
commit 0d9e3bc6dbe88da0464ba4b77219ed5b7c276340; perly.act, perly.h and
perly.tab regenerated using regen_perly.pl with Cygwin bison 3.7.6)



To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to