From c4d5dbb814e180014c8b3b6fa40b62efe123c55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppi...@redhat.com> Date: Thu, 3 Nov 2016 12:59:22 +0100 Subject: Fix crash when matching UTF-8 string with non-UTF-8 substrings
--- ...-anchored-floating-substrings-must-be-utf.patch | 56 ++++++++++++++++++++++ perl.spec | 7 +++ 2 files changed, 63 insertions(+) create mode 100644 perl-5.22.2-perl-129350-anchored-floating-substrings-must-be-utf.patch diff --git a/perl-5.22.2-perl-129350-anchored-floating-substrings-must-be-utf.patch b/perl-5.22.2-perl-129350-anchored-floating-substrings-must-be-utf.patch new file mode 100644 index 0000000..3906086 --- /dev/null +++ b/perl-5.22.2-perl-129350-anchored-floating-substrings-must-be-utf.patch @@ -0,0 +1,56 @@ +From 23628ae4896040e64261a925d06d8003c61d8bbd Mon Sep 17 00:00:00 2001 +From: Hugo van der Sanden <h...@crypt.org> +Date: Tue, 4 Oct 2016 14:40:11 +0100 +Subject: [PATCH] anchored/floating substrings must be utf8 if target is +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ported to 5.22.2: + +commit 2814f4b3549f665a6f9203ac9e890ae1e415e0dc +Author: Hugo van der Sanden <h...@crypt.org> +Date: Tue Oct 4 14:40:11 2016 +0100 + + [perl #129350] anchored/floating substrings must be utf8 if target is + + If the target is utf8 and either the anchored or floating substrings + are not, we need to create utf8 copies to check against. The state + of the two substrings may not be the same, but we were only testing + whichever we planned to check first. + +Signed-off-by: Petr Písař <ppi...@redhat.com> +--- + regexec.c | 3 ++- + t/re/re_tests | 1 + + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/regexec.c b/regexec.c +index e38c6ca..98df35d 100644 +--- a/regexec.c ++++ b/regexec.c +@@ -694,7 +694,8 @@ Perl_re_intuit_start(pTHX_ + reginfo->poscache_maxiter = 0; + + if (utf8_target) { +- if (!prog->check_utf8 && prog->check_substr) ++ if ((!prog->anchored_utf8 && prog->anchored_substr) ++ || (!prog->float_utf8 && prog->float_substr)) + to_utf8_substr(prog); + check = prog->check_utf8; + } else { +diff --git a/t/re/re_tests b/t/re/re_tests +index 85ce7f4..c65bcce 100644 +--- a/t/re/re_tests ++++ b/t/re/re_tests +@@ -1941,6 +1941,7 @@ A+(*PRUNE)BC(?{}) AAABC y $& AAABC + .{1}?? - c - Nested quantifiers + .{1}?+ - c - Nested quantifiers + (?:.||)(?|)000000000@ 000000000@ y $& 000000000@ # [perl #126405] ++\b\z0*\x{100} .\x{100} n - - # [perl #129350] crashed in intuit_start + + # Keep these lines at the end of the file + # vim: softtabstop=0 noexpandtab +-- +2.7.4 + diff --git a/perl.spec b/perl.spec index a1400a3..fb1f529 100644 --- a/perl.spec +++ b/perl.spec @@ -127,6 +127,10 @@ Patch40: perl-5.25.4-clean-up-gv_fetchmethod_pvn_flags-rename-nsplit-to-l Patch41: perl-5.25.4-fix-129267-rework-gv_fetchmethod_pvn_flags-separator.patch Patch42: perl-5.25.4-perl-129267-Test-for-gv_fetchmethod-buffer-overrun.patch +# Fix crash when matching UTF-8 string with non-UTF-8 substrings, RT#129350, +# in upstream after 5.25.5 +Patch43: perl-5.22.2-perl-129350-anchored-floating-substrings-must-be-utf.patch + # Link XS modules to libperl.so with EU::CBuilder on Linux, bug #960048 Patch200: perl-5.16.3-Link-XS-modules-to-libperl.so-with-EU-CBuilder-on-Li.patch @@ -2182,6 +2186,7 @@ Perl extension for Version Objects %patch40 -p1 %patch41 -p1 %patch42 -p1 +%patch43 -p1 %patch200 -p1 %patch201 -p1 @@ -2216,6 +2221,7 @@ perl -x patchlevel.h \ 'Fedora Patch40: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ 'Fedora Patch41: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ 'Fedora Patch42: Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267)' \ + 'Fedora Patch43: Fix crash when matching UTF-8 string with non-UTF-8 substrings (RT#129350)' \ 'Fedora Patch200: Link XS modules to libperl.so with EU::CBuilder on Linux' \ 'Fedora Patch201: Link XS modules to libperl.so with EU::MM on Linux' \ %{nil} @@ -4235,6 +4241,7 @@ popd - Fix crash in "evalbytes S" (RT#129196) - Fix crash in splice (RT#129164, RT#129166, RT#129167) - Fix string overrun in Perl_gv_fetchmethod_pvn_flags (RT#129267) +- Fix crash when matching UTF-8 string with non-UTF-8 substrings (RT#129350) * Wed Aug 03 2016 Jitka Plesnikova <jples...@redhat.com> - 4:5.22.2-354 - Avoid loading optional modules from default . (CVE-2016-1238) -- cgit v0.12 http://pkgs.fedoraproject.org/cgit/perl.git/commit/?h=f23&id=c4d5dbb814e180014c8b3b6fa40b62efe123c55c _______________________________________________ perl-devel mailing list -- perl-devel@lists.fedoraproject.org To unsubscribe send an email to perl-devel-le...@lists.fedoraproject.org