author | Vladimir Marek <Vladimir.Marek@oracle.com> |
Thu, 17 Nov 2011 08:23:20 -0800 | |
branch | s11-sru |
changeset 2235 | a44c81d82486 |
child 884 | cd5a2da081ff |
permissions | -rw-r--r-- |
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 |
}; |