summaryrefslogtreecommitdiff
path: root/op.c
diff options
context:
space:
mode:
authorZefram <zefram@fysh.org>2018-03-02 19:32:42 +0000
committerSteve Hay <steve.m.hay@googlemail.com>2018-03-02 19:32:52 +0000
commit72fae23930e992d44fd0e3695b517e1f45ad8260 (patch)
tree7d08a2ebd2aa865fa1d8292b386134b437fd493e /op.c
parent2f3749f70f4382388eeaaf05b2c9a5cf0971c8b7 (diff)
downloadperl-72fae23930e992d44fd0e3695b517e1f45ad8260.tar.gz
properly check readpipe()'s argument list
readpipe() wasn't applying context to its argument list, resulting in readpipe()'s context leaking in, and broken stack discipline when a list expression was used. Fixes [perl #4574]. (cherry picked from commit 397baf232086e0a9ad6f881a9614d3dbaea853fc)
Diffstat (limited to 'op.c')
-rw-r--r--op.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/op.c b/op.c
index 1517fa73b6..3e2e712b46 100644
--- a/op.c
+++ b/op.c
@@ -9610,6 +9610,7 @@ Perl_ck_backtick(pTHX_ OP *o)
OP *newop = NULL;
OP *sibl;
PERL_ARGS_ASSERT_CK_BACKTICK;
+ o = ck_fun(o);
/* qx and `` have a null pushmark; CORE::readpipe has only one kid. */
if (o->op_flags & OPf_KIDS && (sibl = OpSIBLING(cUNOPo->op_first))
&& (gv = gv_override("readpipe",8)))