summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2014-10-15 21:54:13 +0000
committerAndreas K. Hüttel <dilfridge@gentoo.org>2014-10-15 21:54:13 +0000
commit19bb68ac1e0039d797dbf62b8b51a02777046658 (patch)
tree9ae08921a67b7519192352530ef1b68cafa7c4fd /perl-core/File-Temp/files
parentAdd kde-base/plasma-nm as an alternative. (diff)
downloadgentoo-2-19bb68ac1e0039d797dbf62b8b51a02777046658.tar.gz
gentoo-2-19bb68ac1e0039d797dbf62b8b51a02777046658.tar.bz2
gentoo-2-19bb68ac1e0039d797dbf62b8b51a02777046658.zip
Add patch for bug 390719
(Portage version: 2.2.14_rc1/cvs/Linux x86_64, signed Manifest commit with key EBE6A336BE19039C!)
Diffstat (limited to 'perl-core/File-Temp/files')
-rw-r--r--perl-core/File-Temp/files/File-Temp-0.230.0-symlink-safety.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/perl-core/File-Temp/files/File-Temp-0.230.0-symlink-safety.patch b/perl-core/File-Temp/files/File-Temp-0.230.0-symlink-safety.patch
new file mode 100644
index 000000000000..d6a3a717c702
--- /dev/null
+++ b/perl-core/File-Temp/files/File-Temp-0.230.0-symlink-safety.patch
@@ -0,0 +1,37 @@
+From: John Lightsey <jd@cpanel.net>
+Date: Mon, 27 Jun 2011 13:07:44 -0500
+Subject: [PATCH] symlink safety
+
+Add check for unsafe symbolic links to _is_safe() directory check.
+
+
+diff -ruN File-Temp-0.23.orig/lib/File/Temp.pm File-Temp-0.23/lib/File/Temp.pm
+--- File-Temp-0.23.orig/lib/File/Temp.pm 2013-03-14 22:56:59.000000000 +0100
++++ File-Temp-0.23/lib/File/Temp.pm 2014-10-15 23:46:29.894611586 +0200
+@@ -672,7 +672,25 @@
+ my $err_ref = shift;
+
+ # Stat path
+- my @info = stat($path);
++ my @info = lstat($path);
++ my $symlink_test_path = $path;
++ my $symlink_loop_count = 0;
++ while (-l _) {
++ if (++$symlink_loop_count >= 50) {
++ $$err_ref = "50 levels of symlinks encountered at $path";
++ return 0;
++ }
++ if ( $info[4] <= File::Temp->top_system_uid() || $info[4] == $>) {
++ # safe to traverse
++ $symlink_test_path = readlink($symlink_test_path);
++ @info = lstat($symlink_test_path);
++ }
++ else {
++ $$err_ref = "Unsafe symlink at $path";
++ return 0;
++ }
++ }
++
+ unless (scalar(@info)) {
+ $$err_ref = "stat(path) returned no values";
+ return 0;