pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/bootstrap Added some very basic sanity checks for the ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/6e41bd7258b6
branches:  trunk
changeset: 534335:6e41bd7258b6
user:      rillig <rillig%pkgsrc.org@localhost>
date:      Wed Oct 17 02:45:42 2007 +0000

description:
Added some very basic sanity checks for the arguments to bootstrap. This
code should have been here since the very beginning of bootstrap.
Additionally, the paths are checked that they only contain characters
from the "Portable Filename Character Set" (IEEE 2003.1, definition 3.276).

Motivated by http://mail-index.netbsd.org/pkgsrc-users/2007/10/17/0000.html

diffstat:

 bootstrap/bootstrap |  29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diffs (52 lines):

diff -r 0149c9e7a8c1 -r 6e41bd7258b6 bootstrap/bootstrap
--- a/bootstrap/bootstrap       Wed Oct 17 00:00:54 2007 +0000
+++ b/bootstrap/bootstrap       Wed Oct 17 02:45:42 2007 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# $NetBSD: bootstrap,v 1.114 2007/10/09 01:10:19 rillig Exp $
+# $NetBSD: bootstrap,v 1.115 2007/10/17 02:45:42 rillig Exp $
 #
 #
 # Copyright (c) 2001-2002 Alistair G. Crooks.  All rights reserved.
@@ -261,6 +261,26 @@
        expr "x$1" : "x[^=]*=\\(.*\\)"
 }
 
+checkarg_sane_absolute_path() {
+       case "$1" in
+       "")     ;; # the default value will be used.
+       *[!-A-Za-z0-9_./]*)
+               die "ERROR: Invalid characters in path $1 (from $2)." ;;
+       /*)     ;;
+       *)      die "ERROR: The argument to $2 must be an absolute path." ;;
+       esac
+}
+
+checkarg_sane_relative_path() {
+       case "$1" in
+       "")     ;; # the default value will be used.
+       *[!-A-Za-z0-9_./]*)
+               die "ERROR: Invalid characters in path $1 (from $2)." ;;
+       /*)     die "ERROR: The argument to $2 must be a relative path." ;;
+       *)      ;;
+       esac
+}
+
 bootstrap_sh=${SH-/bin/sh}
 bootstrap_sh_set=${SH+set}
 
@@ -326,6 +346,13 @@
        shift
 done
 
+checkarg_sane_absolute_path "$wrkdir" "--workdir"
+checkarg_sane_absolute_path "$prefix" "--prefix"
+checkarg_sane_absolute_path "$pkgdbdir" "--pkgdbdir"
+checkarg_sane_absolute_path "$sysconfdir" "--sysconfdir"
+checkarg_sane_absolute_path "$varbase" "--varbase"
+checkarg_sane_relative_path "$pkgmandir" "--pkgmandir"
+
 # set defaults for system locations if not already set by the user
 wrkobjdir=${wrkdir}/pkgsrc
 if [ "$ignoreusercheck" = "yes" ]; then



Home | Main Index | Thread Index | Old Index