From 60f59ff5b70bbde1114a6204a4bde363897fc396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcela=20Ma=C5=A1l=C3=A1=C5=88ov=C3=A1?= Date: Mon, 21 Jul 2008 10:50:15 +0000 Subject: [PATCH] - 455933 update to CGI-3.38 - fix fuzz problems (patch6) - 217833 pos() function handle unicode characters correct --- perl-5.10.0-pos.patch | 47 +++++++++++++++++++++---------------------- perl.spec | 2 +- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/perl-5.10.0-pos.patch b/perl-5.10.0-pos.patch index 0067d3c..b626ff5 100644 --- a/perl-5.10.0-pos.patch +++ b/perl-5.10.0-pos.patch @@ -1,27 +1,3 @@ -diff -up perl-5.10.0/pp_ctl.c.pos perl-5.10.0/pp_ctl.c ---- perl-5.10.0/pp_ctl.c.pos 2007-12-18 11:47:08.000000000 +0100 -+++ perl-5.10.0/pp_ctl.c 2008-07-21 11:00:15.000000000 +0200 -@@ -285,7 +285,6 @@ PP(pp_substcont) - { /* Update the pos() information. */ - SV * const sv = cx->sb_targ; - MAGIC *mg; -- I32 i; - SvUPGRADE(sv, SVt_PVMG); - if (!(mg = mg_find(sv, PERL_MAGIC_regex_global))) { - #ifdef PERL_OLD_COPY_ON_WRITE -@@ -295,11 +294,8 @@ PP(pp_substcont) - mg = sv_magicext(sv, NULL, PERL_MAGIC_regex_global, &PL_vtbl_mglob, - NULL, 0); - } -- i = m - orig; -- if (DO_UTF8(sv)) -- sv_pos_b2u(sv, &i); -- mg->mg_len = i; -+ mg->mg_len = m - orig; - } - if (old != rx) - (void)ReREFCNT_inc(rx); - cx->sb_rxtainted |= RX_MATCH_TAINTED(rx); diff -up perl-5.10.0/t/op/subst.t.pos perl-5.10.0/t/op/subst.t --- perl-5.10.0/t/op/subst.t.pos 2007-12-18 11:47:08.000000000 +0100 +++ perl-5.10.0/t/op/subst.t 2008-07-21 11:01:01.000000000 +0200 @@ -46,3 +22,26 @@ diff -up perl-5.10.0/t/op/subst.t.pos perl-5.10.0/t/op/subst.t + is($_, "012", "RT#52104: $id"); + } +} +diff -up perl-5.10.0/pp_ctl.c.pos perl-5.10.0/pp_ctl.c +--- perl-5.10.0/pp_ctl.c.pos 2007-12-18 11:47:08.000000000 +0100 ++++ perl-5.10.0/pp_ctl.c 2008-07-21 12:31:50.000000000 +0200 +@@ -285,7 +285,6 @@ PP(pp_substcont) + { /* Update the pos() information. */ + SV * const sv = cx->sb_targ; + MAGIC *mg; +- I32 i; + SvUPGRADE(sv, SVt_PVMG); + if (!(mg = mg_find(sv, PERL_MAGIC_regex_global))) { + #ifdef PERL_OLD_COPY_ON_WRITE +@@ -295,10 +294,7 @@ PP(pp_substcont) + mg = sv_magicext(sv, NULL, PERL_MAGIC_regex_global, &PL_vtbl_mglob, + NULL, 0); + } +- i = m - orig; +- if (DO_UTF8(sv)) +- sv_pos_b2u(sv, &i); +- mg->mg_len = i; ++ mg->mg_len = m - orig; + } + if (old != rx) + (void)ReREFCNT_inc(rx); diff --git a/perl.spec b/perl.spec index 17ed9c0..18786c7 100644 --- a/perl.spec +++ b/perl.spec @@ -810,7 +810,7 @@ upstream tarball from perl.org. %patch17 -p1 %patch18 -p1 %patch19 -p1 -#%patch20 -p1 +%patch20 -p1 # # Candidates for doc recoding (need case by case review): # find . -name "*.pod" -o -name "README*" -o -name "*.pm" | xargs file -i | grep charset= | grep -v '\(us-ascii\|utf-8\)'