diff options
-rwxr-xr-x | bootstrap/bootstrap | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/bootstrap/bootstrap b/bootstrap/bootstrap index c6cec700aa8..34009b8f633 100755 --- a/bootstrap/bootstrap +++ b/bootstrap/bootstrap @@ -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 @@ get_optarg() 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 @@ while [ $# -gt 0 ]; do 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 |