summaryrefslogtreecommitdiff
path: root/embed.h
diff options
context:
space:
mode:
authorHugo van der Sanden <hv@crypt.org>2020-04-28 18:52:44 +0100
committerSteve Hay <steve.m.hay@googlemail.com>2020-06-01 20:35:51 +0100
commit3a1df45e827a79d14694d18dd0141c09a0abfe5c (patch)
treedd73e954d63fe07d1c7a785dac9d022d9ccaa45b /embed.h
parent0e9563b9242a5758c6ce11daf8385b3753e9ed9c (diff)
downloadperl-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.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/embed.h b/embed.h
index 255bf59516..182b12aa93 100644
--- a/embed.h
+++ b/embed.h
@@ -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)