import of openssh-5.8p1
[openssh.git] / regress / sftp-badcmds.sh
1 #       $OpenBSD: sftp-badcmds.sh,v 1.4 2009/08/13 01:11:55 djm Exp $
2 #       Placed in the Public Domain.
3
4 tid="sftp invalid commands"
5
6 DATA=/bin/ls${EXEEXT}
7 DATA2=/bin/sh${EXEEXT}
8 NONEXIST=/NONEXIST.$$
9 COPY=${OBJ}/copy
10 GLOBFILES=`(cd /bin;echo l*)`
11
12 rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd
13
14 rm -f ${COPY}
15 verbose "$tid: get nonexistent"
16 echo "get $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
17         || fail "get nonexistent failed"
18 test -f ${COPY} && fail "existing copy after get nonexistent"
19
20 rm -f ${COPY}.dd/*
21 verbose "$tid: glob get to nonexistent directory"
22 echo "get /bin/l* $NONEXIST" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
23         || fail "get nonexistent failed"
24 for x in $GLOBFILES; do
25         test -f ${COPY}.dd/$x && fail "existing copy after get nonexistent"
26 done
27
28 rm -f ${COPY}
29 verbose "$tid: put nonexistent"
30 echo "put $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
31         || fail "put nonexistent failed"
32 test -f ${COPY} && fail "existing copy after put nonexistent"
33
34 rm -f ${COPY}.dd/*
35 verbose "$tid: glob put to nonexistent directory"
36 echo "put /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
37         || fail "put nonexistent failed"
38 for x in $GLOBFILES; do
39         test -f ${COPY}.dd/$x && fail "existing copy after nonexistent"
40 done
41
42 rm -f ${COPY}
43 verbose "$tid: rename nonexistent"
44 echo "rename $NONEXIST ${COPY}.1" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
45         || fail "rename nonexist failed"
46 test -f ${COPY}.1 && fail "file exists after rename nonexistent"
47
48 rm -rf ${COPY} ${COPY}.dd
49 cp $DATA $COPY
50 mkdir ${COPY}.dd
51 verbose "$tid: rename target exists (directory)"
52 echo "rename $COPY ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \
53         || fail "rename target exists (directory) failed"
54 test -f ${COPY} || fail "oldname missing after rename target exists (directory)"
55 test -d ${COPY}.dd || fail "newname missing after rename target exists (directory)"
56 cmp $DATA ${COPY} >/dev/null 2>&1 || fail "corrupted oldname after rename target exists (directory)"
57
58 rm -f ${COPY}.dd/*
59 rm -rf ${COPY}
60 cp ${DATA2} ${COPY}
61 verbose "$tid: glob put files to local file"
62 echo "put /bin/l* $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 
63 cmp ${DATA2} ${COPY} || fail "put successed when it should have failed"
64
65 rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd
66
67