components/perl512/patches/CVE-2011-2728.patch
author Vladimir Marek <Vladimir.Marek@oracle.com>
Thu, 17 Nov 2011 08:23:20 -0800
branchs11-sru
changeset 2235 a44c81d82486
child 884 cd5a2da081ff
permissions -rw-r--r--
7111771 Problem with utility/perl
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2235
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     1
#
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     2
# CVE-2011-2728
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     3
# http://perl5.git.perl.org/perl.git/commit/1af4051e077438976a4c12a0622feaf6715bec77
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     4
# https://bugzilla.redhat.com/show_bug.cgi?id=742236
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     5
#
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     6
diff -urN perl-5.12.3/ext/File-Glob/Glob.xs p/ext/File-Glob/Glob.xs
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     7
--- perl-5.12.3/ext/File-Glob/Glob.xs   2011-01-09 12:20:55.000000000 -0800
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     8
+++ perl-5.12.3/ext/File-Glob/Glob.xs     2011-11-28 00:46:10.593556922 -0800
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     9
@@ -1,6 +1,7 @@
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    10
 #include "EXTERN.h"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    11
 #include "perl.h"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    12
 #include "XSUB.h"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    13
+#include "strings.h"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    14
 
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    15
 #include "bsd_glob.h"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    16
 
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    17
@@ -49,9 +50,12 @@
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    18
 	/* allow for optional flags argument */
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    19
 	if (items > 1) {
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    20
 	    flags = (int) SvIV(ST(1));
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    21
+	    /* remove unsupported flags */
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    22
+	    flags &= ~(GLOB_APPEND | GLOB_DOOFFS | GLOB_ALTDIRFUNC | GLOB_MAGCHAR);
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    23
 	}
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    24
 
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    25
 	/* call glob */
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    26
+	bzero(&pglob, sizeof(glob_t));
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    27
 	retval = bsd_glob(pattern, flags, errfunc, &pglob);
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    28
 	GLOB_ERROR = retval;
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    29
 
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    30
--- perl-5.12.3/ext/File-Glob/t/basic.t.orig  út lis 15 13:22:27 2011
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    31
+++ perl-5.12.3/ext/File-Glob/t/basic.t       út lis 15 13:22:54 2011
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    32
@@ -15,7 +15,7 @@
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    33
     }
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    34
 }
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    35
 use strict;
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    36
-use Test::More tests => 14;
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    37
+use Test::More tests => 15;
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    38
 BEGIN {use_ok('File::Glob', ':glob')};
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    39
 use Cwd ();
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    40
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    41
@@ -195,3 +195,7 @@
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    42
     local $TODO = "home-made glob doesn't do regexes" if $^O eq 'VMS';
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    43
     is_deeply(\@glob_files, ['a_dej']);
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    44
 }
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    45
+
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    46
+# This used to segfault.
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    47
+my $i = bsd_glob('*', GLOB_ALTDIRFUNC);
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    48
+is(&File::Glob::GLOB_ERROR, 0, "Successfuly ignored unsupported flag");
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    49
--- perl-5.12.3/patchlevel.h.orig     út lis 15 13:26:11 2011
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    50
+++ perl-5.12.3/patchlevel.h  út lis 15 13:26:17 2011
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    51
@@ -131,6 +131,7 @@
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    52
 	,"uncommitted-changes"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    53
 #endif
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    54
 	PERL_GIT_UNPUSHED_COMMITS    	/* do not remove this line */
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    55
+	,"7111771 Problem with utility/perl"
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    56
 	,NULL
a44c81d82486 7111771 Problem with utility/perl
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    57
 };