From 9a48f2ab9670d2d0c57075bcf3653fd7c05e3535 Mon Sep 17 00:00:00 2001 From: Aaron Crane <arc@cpan.org> Date: Fri, 26 Apr 2019 14:02:47 +0100 Subject: [PATCH] RT#134061: don't call pad_findmy_pvn() with invalid flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Písař <ppisar@redhat.com> --- op.c | 2 +- t/comp/parser_run.t | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/op.c b/op.c index 1862f1b11b..74761ca421 100644 --- a/op.c +++ b/op.c @@ -12732,7 +12732,7 @@ Perl_ck_sort(pTHX_ OP *o) *tmpbuf = '&'; assert (len < 256); Copy(name, tmpbuf+1, len, char); - off = pad_findmy_pvn(tmpbuf, len+1, SvUTF8(kSVOP_sv)); + off = pad_findmy_pvn(tmpbuf, len+1, 0); if (off != NOT_IN_PAD) { if (PAD_COMPNAME_FLAGS_isOUR(off)) { SV * const fq = diff --git a/t/comp/parser_run.t b/t/comp/parser_run.t index 79b669d807..4179880497 100644 --- a/t/comp/parser_run.t +++ b/t/comp/parser_run.t @@ -10,7 +10,7 @@ BEGIN { set_up_inc( qw(. ../lib ) ); } -plan(5); +plan(6); # [perl #130814] can reallocate lineptr while looking ahead for # "Missing $ on loop variable" diagnostic. @@ -55,5 +55,13 @@ syntax error at - line 1, at EOF Execution of - aborted due to compilation errors. EXPECTED +fresh_perl_is(<<'EOS', <<'EXPECT', {}, 'no panic in pad_findmy_pvn (#134061)'); +use utf8; +eval "sort \x{100}%"; +die $@; +EOS +syntax error at (eval 1) line 1, at EOF +EXPECT + __END__ # ex: set ts=8 sts=4 sw=4 et: -- 2.20.1