dev-perl/Data-FormValidator: Add fix for '.' in @INC re bug #613378

This avoids the '.' in @INC issue by absolutizing paths at construction
time so that "do" never loads any path other than the one the user
assumed would be read.

Bug: https://bugs.gentoo.org/613378
Package-Manager: Portage-2.3.5, Repoman-2.3.2
This commit is contained in:
Kent Fredric
2017-06-04 07:10:43 +12:00
parent 0f5944db60
commit e6b0c67a6a
2 changed files with 90 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DIST_AUTHOR=DFARRELL
DIST_VERSION=4.86
inherit perl-module
DESCRIPTION="Validates user input (usually from an HTML form) based on input profile"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE=""
PATCHES=( "${FILESDIR}/4.86-dot-in-inc.patch" )
RDEPEND="dev-perl/Image-Size
>=dev-perl/Date-Calc-5.0
>=dev-perl/File-MMagic-1.17
>=dev-perl/MIME-Types-1.005
>=dev-perl/Regexp-Common-0.30.0
dev-perl/Email-Valid
virtual/perl-File-Spec
"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
"
src_test() {
perl_rm_files t/pod.t
perl-module_src_test
}

View File

@@ -0,0 +1,58 @@
From bfc088aa911062d987c830d5bb56aa4afd0d3735 Mon Sep 17 00:00:00 2001
From: Kent Fredric <kentfredric@gmail.com>
Date: Sun, 4 Jun 2017 00:40:04 +1200
Subject: [PATCH] Absolutize filenames during construction
This way, any relative paths become absolute as soon as possible,
so that if chdir happens between "new" and "load_profiles", the loaded
file won't magically change.
This also aims to turn the <do "file.pm"> into a <do "/path/to/File.pm">
as the former no longer reads from "." since Perl 5.25.11, as paths
with neither leading "./" or leading "/" imply @INC traversal.
This aims to resolve RT#120671
https://rt.cpan.org/Ticket/Display.html?id=120671
https://bugs.gentoo.org/613378
---
Makefile.PL | 1 +
lib/Data/FormValidator.pm | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile.PL b/Makefile.PL
index a9839a6..cef175a 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -19,6 +19,7 @@ WriteMakefile(
'Regexp::Common' => 0.03, # when ::whitespace was added
'Scalar::Util' => 0,
'Email::Valid' => 0,
+ 'File::Spec' => 0,
},
(eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (META_MERGE => {
'meta-spec' => { version => 2 },
diff --git a/lib/Data/FormValidator.pm b/lib/Data/FormValidator.pm
index 7075dc4..bc0709e 100644
--- a/lib/Data/FormValidator.pm
+++ b/lib/Data/FormValidator.pm
@@ -24,6 +24,7 @@
package Data::FormValidator;
use Exporter 'import';
+use File::Spec qw();
use 5.008;
use Data::FormValidator::Results;
@@ -147,7 +148,7 @@ sub new {
$profiles = $profiles_or_file;
}
else {
- $file = $profiles_or_file;
+ $file = File::Spec->rel2abs( $profiles_or_file );
}
--
2.12.2