Date: Sun, 19 Apr 2020 00:36:05 +0000 (UTC) From: Matthias Andree <mandree@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r532057 - head/Tools/scripts Message-ID: <202004190036.03J0a5Hn079285@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mandree Date: Sun Apr 19 00:36:04 2020 New Revision: 532057 URL: https://svnweb.freebsd.org/changeset/ports/532057 Log: bump_revision.pl: minor usability improvements - use env -S to split the shebang line (RhToad@#bsdports) - launder -p PORTSDIR argument and chdir to it so it doesn't matter which cwd bump_revision.pl is executed from - if INDEX not found, hint the user that also his -p option might be off, because the -i INDEX option defaults to a file relative to -p PORTSDIR. Modified: head/Tools/scripts/bump_revision.pl Modified: head/Tools/scripts/bump_revision.pl ============================================================================== --- head/Tools/scripts/bump_revision.pl Sun Apr 19 00:22:44 2020 (r532056) +++ head/Tools/scripts/bump_revision.pl Sun Apr 19 00:36:04 2020 (r532057) @@ -1,4 +1,4 @@ -#!/usr/bin/env perl -wT +#!/usr/bin/env -S perl -wT # $FreeBSD$ @@ -7,15 +7,13 @@ # set of ports, for instance, when in the latter set one of the ports bumped the # .so library version. # -# It is best executed with the working directory set to the base of a -# ports tree, such as /usr/ports. -# # The shebang line above includes -T (taint) to be more distrustful # about the environment, for security reasons, and is considered # good Perl practice. # -# You can use either the -l (shaLlow, avoid grandparent dependencies, -# slower) or -g option (include grandparent dependencies) option. +# You can use either the +# -l (shaLlow, avoid grandparent dependencies, slower) or +# -g option (include grandparent dependencies) option. # # MAINTAINER= mandree@FreeBSD.org # @@ -126,7 +124,8 @@ my ($portsdir, $INDEX); $INDEX = $opt_i if ($opt_i); if (!-f $INDEX) { $INDEX = "$portsdir/INDEX"; } - die "$INDEX doesn't seem to exist. Please check the value supplied with -i, or use -i /path/to/INDEX." unless(-f $INDEX); + die "$INDEX doesn't seem to exist. Please check the value supplied with -i,\n" . + "or use -i /path/to/INDEX, or check your -p PORTSDIR." unless(-f $INDEX); } usage() unless(@ARGV); @@ -138,6 +137,16 @@ my $TMPDIR = File::Basename::dirname($INDEX); if (-d "$TMPDIR/.svn" and not $opt_n and not $opt_c) { die "$TMPDIR/.svn exists, cowardly refusing to proceed.\n"; } + + +# must launder $portsdir (from command line => tainted) first +if ($portsdir =~ /^([-\@\w.\/]+)$/) { + $portsdir = $1; } +else { + die "Portsdir \"$portsdir\" contains unsafe characters. Aborting"; +} + +chdir "$portsdir" or die "cannot cd to $portsdir: $!\nAborting"; # # Read the index, save some interesting keys
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004190036.03J0a5Hn079285>