From 75839571633feac3bfc81ebab323ce9d655edfcb Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Mon, 18 Nov 2013 06:01:56 -0800 Subject: [PATCH] =?utf8?q?Fix=20=E2=80=98panic:=20memory=20wrap=E2=80=99?= =?utf8?q?=20in=20reg=5Fscan=5Fname?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit reg_scan_name was not checking for end-of-string. If the character it read were not a word character, it would then increment the current position (RExC_parse), so that the <-- HERE marker in the error mes- sage would point to the bad character. If we try to split a regexp like /(?' ? '<' : paren); if (SIZE_ONLY) { diff --git a/t/re/reg_mesg.t b/t/re/reg_mesg.t index f81d8b6..70c0b01 100644 --- a/t/re/reg_mesg.t +++ b/t/re/reg_mesg.t @@ -214,6 +214,14 @@ my @death = 'm/a\97/' => 'Reference to nonexistent group {#} m/a\97{#}/', 'm/(*DOOF)/' => 'Unknown verb pattern \'DOOF\' {#} m/(*DOOF){#}/', 'm/(?&a/' => 'Sequence (?&... not terminated {#} m/(?&a{#}/', + 'm/(?P=/' => 'Sequence ?P=... not terminated {#} m/(?P={#}/', + "m/(?'/" => "Sequence (?'... not terminated {#} m/(?'{#}/", + "m/(? "Sequence (?<... not terminated {#} m/(?<{#}/", + 'm/(?&/' => 'Sequence (?&... not terminated {#} m/(?&{#}/', + 'm/(?( 'Sequence (?(<... not terminated {#} m/(?(<{#}/', + "m/(?('/" => "Sequence (?('... not terminated {#} m/(?('{#}/", + 'm/\g{/' => 'Sequence \g{... not terminated {#} m/\g{{#}/', + 'm/\k 'Sequence \k<... not terminated {#} m/\k<{#}/', ); my @death_utf8 = mark_as_utf8( -- 2.7.4