diff options
author | Hugo van der Sanden <hv@crypt.org> | 2020-04-28 18:52:44 +0100 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2020-06-01 20:35:51 +0100 |
commit | 3a1df45e827a79d14694d18dd0141c09a0abfe5c (patch) | |
tree | dd73e954d63fe07d1c7a785dac9d022d9ccaa45b /embed.h | |
parent | 0e9563b9242a5758c6ce11daf8385b3753e9ed9c (diff) | |
download | perl-3a1df45e827a79d14694d18dd0141c09a0abfe5c.tar.gz |
study_chunk: honour mutate_ok over recursion
As described in #17743, study_chunk can re-enter itself either by
simple recursion or by enframing. 089ad25d3f used the new mutate_ok
variable to track whether we were within the framing scope of GOSUB,
and to disallow mutating changes to ops if so.
This commit extends that logic to reentry by recursion, passing in
the current state as was_mutate_ok.
(CVE-2020-12723)
(cherry picked from commit 3445383845ed220eaa12cd406db2067eb7b8a741)
Diffstat (limited to 'embed.h')
-rw-r--r-- | embed.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1090,7 +1090,7 @@ #define ssc_is_cp_posixl_init S_ssc_is_cp_posixl_init #define ssc_or(a,b,c) S_ssc_or(aTHX_ a,b,c) #define ssc_union(a,b,c) S_ssc_union(aTHX_ a,b,c) -#define study_chunk(a,b,c,d,e,f,g,h,i,j,k) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k) +#define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l) # endif # if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) #define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d) |