From 06fce2b23888621fe87759ffa014c3920f937b7e Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 3 Sep 2016 23:46:33 +0100 Subject: [PATCH] pm_filter: use \Q...\E to escape all possible strings pedantically The current implementation would misbehave for prefixes containing a single quote. --- pm_filter | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pm_filter b/pm_filter index 351e0b4d9..7b03418ab 100755 --- a/pm_filter +++ b/pm_filter @@ -7,10 +7,10 @@ BEGIN { } if (/INSTALLDIR_AUTOREPLACE/) { - $_=qq{our \$installdir='$prefix';}; + $_=qq{our \$installdir="\Q$prefix\E";}; } elsif (/VERSION_AUTOREPLACE/) { - $_=qq{our \$version="$ver";}; + $_=qq{our \$version="\Q$ver\E";}; } elsif (/^(?:use FindBin; *)?use lib/) { # The idea here is to figure out if the libdir the Makefile.PL @@ -22,12 +22,12 @@ elsif (/^(?:use FindBin; *)?use lib/) { $_=""; } else { - $_="use lib '$libdir';\n"; + $_="use lib \"\Q$libdir\E\";\n"; } } elsif ($. == 1 && ($ENV{NOTAINT}=0) && m{^(#!.*perl.*?)$}) { $_=qq{$1 -T\n}; } elsif (/^\$ENV\{PATH}="(.*)";/) { - $_="\$ENV{PATH}=\"$1:$prefix/bin\";\n"; + $_="\$ENV{PATH}=\"\Q$1\E:\Q$prefix\E/bin\";\n"; }