Files
poky/meta/recipes-devtools/perl/perl-5.20.0/perl-5.14.3-fix-CVE-2010-4777.patch
Hongxu Jia e73deac6dc perl, perl-native, perl-ptest: upgrade from 5.14.3 to 5.20.0
Changed:

- The Copying has no change, except the company address.

- pick patches from debian
  http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.20.0-1.debian.tar.xz
  - Not used by oe:
    deprecate-with-apt.diff
    patchlevel.diff
    fakeroot.diff

- Create/Update perl-rdepends_${PV}.inc by the hardcode script;

- Update config.sh by:
  1) Copy the Perl 5.20.0 source code onto your TARGET machine
    linux qemuarm 3.14.5-yocto-standard from OE-Core rev:
    f506d0660c9949485268a92724ac770b5457b0ca
  2) Execute sh Configure as normal and configure as required,
     do not "make";
  3) Compare with the old config.sh files, and update;

- perl-ptest.inc
  1) Copy the souce code to ptest since almost 112 test cases
     failed with the reason that no souce code found;
  2) Add two patches to fix test case issue;

- perl-native
  Reference perl (5.20.0-1) in debian to update perl shared library headers
  https://packages.debian.org/experimental/i386/perl/filelist

Obsolete:

- 09_fix_installperl.patch
  The dead code was removed from installperl
  http://perl5.git.perl.org/perl.git/commit/236818e0b9d9fe874831086b4d0b94dc6f245dfd

- perl-build-in-t-dir.patch
  The upstream has fix it. The issue description:
  Perl cannot cross build in a path containing a directory that has the
  name of "t".  As an example, you can make the perl build fail with
  "mkdir -p /tmp/build/t", go to the directory, unpack the sources,
  configure and cross build.

- 0001-Fix-misparsing-of-maketext-strings.patch
  as they are part of the upstream code now:
  http://perl5.git.perl.org/perl.git/commit/1735f6f53ca19f99c6e9e39496c486af323ba6a8

- 0001-Prevent-premature-hsplit-calls-and-only-trigger-REHA.patch
  the hash function changed:
  http://perl5.git.perl.org/perl.git/commit/7dc8663964c66a698d31bbdc8e8abed69bddeec3

(From OE-Core rev: c7ac82415efc42ff7a93c6df163f88f2dde00d26)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-08 11:20:12 +01:00

46 lines
1.4 KiB
Diff

perl:fix for CVE-2010-4777
Upstream-Status: Backport
The Perl_reg_numbered_buff_fetch function in Perl 5.10.0, 5.12.0,
5.14.0, and other versions, when running with debugging enabled,
allows context-dependent attackers to cause a denial of service
(assertion failure and application exit) via crafted input that
is not properly handled when using certain regular expressions,
as demonstrated by causing SpamAssassin and OCSInventory to
crash.
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4777
Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
--- a/regcomp.c
+++ b/regcomp.c
@@ -11868,8 +11868,25 @@ Perl_save_re_context(pTHX)
if (gvp) {
GV * const gv = *gvp;
- if (SvTYPE(gv) == SVt_PVGV && GvSV(gv))
- save_scalar(gv);
+ if (SvTYPE(gv) == SVt_PVGV && GvSV(gv)) {
+ /* this is a copy of save_scalar() without the GETMAGIC call, RT#76538 */
+ SV ** const sptr = &GvSVn(gv);
+ SV * osv = *sptr;
+ SV * nsv = newSV(0);
+ save_pushptrptr(SvREFCNT_inc_simple(gv),
+ SvREFCNT_inc(osv), SAVEt_SV);
+ if (SvTYPE(osv) >= SVt_PVMG && SvMAGIC(osv) &&
+ SvTYPE(osv) != SVt_PVGV) {
+ if (SvGMAGICAL(osv)) {
+ const bool oldtainted = PL_tainted;
+ SvFLAGS(osv) |= (SvFLAGS(osv) &
+ (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
+ PL_tainted = oldtainted;
+ }
+ mg_localize(osv, nsv, 1);
+ }
+ *sptr = nsv;
+ }
}
}
}