}
}
proc openfh {fn} {
+ if {[string index $fn 0] == "/"} {
+ puts stderr "absolute paths are forbidden"
+ exit 1
+ }
+ foreach e [file split $fn] {
+ if {$e == ".."} {
+ puts stderr "relative paths are forbidden"
+ exit 1
+ }
+ }
set bin no
if {[string range $fn [expr {[string length $fn]-7}] end] == ":base64"} {
set bin yes
--- /dev/null
+#!/bin/sh
+
+test_description="$(basename $0)"
+. $SHARNESS_TEST_SRCDIR/sharness.sh
+export DSC_SCHEMA=$SHARNESS_TEST_DIRECTORY/../schema
+PATH=$SHARNESS_TEST_DIRECTORY/..:$PATH
+export DSC_STASH=stash DSC_SAVED=saved
+mkdir saved
+
+cat >in <<EOF
+-- .dirs --
+-- /abs/path --
+gotcha
+EOF
+test_expect_success "import abs" "! dsc import <in >out 2>&1"
+test_expect_success "import abs msg" \
+ '[ "$(cat out)" = "absolute paths are forbidden" ]'
+
+cat >in <<EOF
+-- .dirs --
+-- path/../rel --
+gotcha
+EOF
+test_expect_success "import rel" "! dsc import <in >out 2>&1"
+test_expect_success "import rel msg" \
+ '[ "$(cat out)" = "relative paths are forbidden" ]'
+
+
+test_done