]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
pm_filter: use \Q...\E to escape all possible strings pedantically
authorSimon McVittie <smcv@debian.org>
Sat, 3 Sep 2016 22:46:33 +0000 (23:46 +0100)
committerSimon McVittie <smcv@debian.org>
Sat, 3 Sep 2016 22:47:52 +0000 (23:47 +0100)
The current implementation would misbehave for prefixes containing
a single quote.

pm_filter

index 351e0b4d99a0104434d687c71fd474f14f6adb08..7b03418ab241de1c93f5d02da8b25b1eccb5219c 100755 (executable)
--- a/pm_filter
+++ b/pm_filter
@@ -7,10 +7,10 @@ BEGIN {
 }
 
 if (/INSTALLDIR_AUTOREPLACE/) {
 }
 
 if (/INSTALLDIR_AUTOREPLACE/) {
-       $_=qq{our \$installdir='$prefix';};
+       $_=qq{our \$installdir="\Q$prefix\E";};
 }
 elsif (/VERSION_AUTOREPLACE/) {
 }
 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
 }
 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 {
                $_="";
        }
        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}="(.*)";/) {
        }
 }
 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";
 }
 }