62 lines
1.5 KiB
Diff
62 lines
1.5 KiB
Diff
diff --git a/regress/scp-ssh-wrapper.sh b/regress/scp-ssh-wrapper.sh
|
|
index 59f1ff63..dd48a482 100644
|
|
--- a/regress/scp-ssh-wrapper.sh
|
|
+++ b/regress/scp-ssh-wrapper.sh
|
|
@@ -51,6 +51,18 @@ badserver_4)
|
|
echo "C755 2 file"
|
|
echo "X"
|
|
;;
|
|
+badserver_5)
|
|
+ echo "D0555 0 "
|
|
+ echo "X"
|
|
+ ;;
|
|
+badserver_6)
|
|
+ echo "D0555 0 ."
|
|
+ echo "X"
|
|
+ ;;
|
|
+badserver_7)
|
|
+ echo "C0755 2 extrafile"
|
|
+ echo "X"
|
|
+ ;;
|
|
*)
|
|
set -- $arg
|
|
shift
|
|
diff --git a/regress/scp.sh b/regress/scp.sh
|
|
index 57cc7706..104c89e1 100644
|
|
--- a/regress/scp.sh
|
|
+++ b/regress/scp.sh
|
|
@@ -25,6 +25,7 @@ export SCP # used in scp-ssh-wrapper.scp
|
|
scpclean() {
|
|
rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2}
|
|
mkdir ${DIR} ${DIR2}
|
|
+ chmod 755 ${DIR} ${DIR2}
|
|
}
|
|
|
|
verbose "$tid: simple copy local file to local file"
|
|
@@ -101,7 +102,7 @@ if [ ! -z "$SUDO" ]; then
|
|
$SUDO rm ${DIR2}/copy
|
|
fi
|
|
|
|
-for i in 0 1 2 3 4; do
|
|
+for i in 0 1 2 3 4 5 6 7; do
|
|
verbose "$tid: disallow bad server #$i"
|
|
SCPTESTMODE=badserver_$i
|
|
export DIR SCPTESTMODE
|
|
@@ -113,6 +114,15 @@ for i in 0 1 2 3 4; do
|
|
scpclean
|
|
$SCP -r $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null
|
|
[ -d ${DIR}/dotpathdir ] && fail "allows dir creation outside of subdir"
|
|
+
|
|
+ scpclean
|
|
+ $SCP -pr $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null
|
|
+ [ ! -w ${DIR2} ] && fail "allows target root attribute change"
|
|
+
|
|
+ scpclean
|
|
+ $SCP $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null
|
|
+ [ -e ${DIR2}/extrafile ] && fail "allows extranous object creation"
|
|
+ rm -f ${DIR2}/extrafile
|
|
done
|
|
|
|
verbose "$tid: detect non-directory target"
|
|
|