1*19261079SEd Maste# $OpenBSD: sftp-badcmds.sh,v 1.7 2020/03/13 03:18:45 djm Exp $ 2ce3adf43SDag-Erling Smørgrav# Placed in the Public Domain. 3ce3adf43SDag-Erling Smørgrav 4ce3adf43SDag-Erling Smørgravtid="sftp invalid commands" 5ce3adf43SDag-Erling Smørgrav 6ce3adf43SDag-Erling SmørgravDATA2=/bin/sh${EXEEXT} 7ce3adf43SDag-Erling SmørgravNONEXIST=/NONEXIST.$$ 8ce3adf43SDag-Erling SmørgravGLOBFILES=`(cd /bin;echo l*)` 9ce3adf43SDag-Erling Smørgrav 10ce3adf43SDag-Erling Smørgravrm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd 11ce3adf43SDag-Erling Smørgrav 12ce3adf43SDag-Erling Smørgravrm -f ${COPY} 13ce3adf43SDag-Erling Smørgravverbose "$tid: get nonexistent" 14ce3adf43SDag-Erling Smørgravecho "get $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 15ce3adf43SDag-Erling Smørgrav || fail "get nonexistent failed" 16ce3adf43SDag-Erling Smørgravtest -f ${COPY} && fail "existing copy after get nonexistent" 17ce3adf43SDag-Erling Smørgrav 18ce3adf43SDag-Erling Smørgravrm -f ${COPY}.dd/* 19ce3adf43SDag-Erling Smørgravverbose "$tid: glob get to nonexistent directory" 20ce3adf43SDag-Erling Smørgravecho "get /bin/l* $NONEXIST" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 21ce3adf43SDag-Erling Smørgrav || fail "get nonexistent failed" 22ce3adf43SDag-Erling Smørgravfor x in $GLOBFILES; do 23ce3adf43SDag-Erling Smørgrav test -f ${COPY}.dd/$x && fail "existing copy after get nonexistent" 24ce3adf43SDag-Erling Smørgravdone 25ce3adf43SDag-Erling Smørgrav 26ce3adf43SDag-Erling Smørgravrm -f ${COPY} 27ce3adf43SDag-Erling Smørgravverbose "$tid: put nonexistent" 28ce3adf43SDag-Erling Smørgravecho "put $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 29ce3adf43SDag-Erling Smørgrav || fail "put nonexistent failed" 30ce3adf43SDag-Erling Smørgravtest -f ${COPY} && fail "existing copy after put nonexistent" 31ce3adf43SDag-Erling Smørgrav 32ce3adf43SDag-Erling Smørgravrm -f ${COPY}.dd/* 33ce3adf43SDag-Erling Smørgravverbose "$tid: glob put to nonexistent directory" 34ce3adf43SDag-Erling Smørgravecho "put /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 35ce3adf43SDag-Erling Smørgrav || fail "put nonexistent failed" 36ce3adf43SDag-Erling Smørgravfor x in $GLOBFILES; do 37ce3adf43SDag-Erling Smørgrav test -f ${COPY}.dd/$x && fail "existing copy after nonexistent" 38ce3adf43SDag-Erling Smørgravdone 39ce3adf43SDag-Erling Smørgrav 40ce3adf43SDag-Erling Smørgravrm -f ${COPY} 41ce3adf43SDag-Erling Smørgravverbose "$tid: rename nonexistent" 42ce3adf43SDag-Erling Smørgravecho "rename $NONEXIST ${COPY}.1" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 43ce3adf43SDag-Erling Smørgrav || fail "rename nonexist failed" 44ce3adf43SDag-Erling Smørgravtest -f ${COPY}.1 && fail "file exists after rename nonexistent" 45ce3adf43SDag-Erling Smørgrav 46ce3adf43SDag-Erling Smørgravrm -rf ${COPY} ${COPY}.dd 47ce3adf43SDag-Erling Smørgravcp $DATA $COPY 48ce3adf43SDag-Erling Smørgravmkdir ${COPY}.dd 49ce3adf43SDag-Erling Smørgravverbose "$tid: rename target exists (directory)" 50ce3adf43SDag-Erling Smørgravecho "rename $COPY ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 \ 51ce3adf43SDag-Erling Smørgrav || fail "rename target exists (directory) failed" 52ce3adf43SDag-Erling Smørgravtest -f ${COPY} || fail "oldname missing after rename target exists (directory)" 53ce3adf43SDag-Erling Smørgravtest -d ${COPY}.dd || fail "newname missing after rename target exists (directory)" 54ce3adf43SDag-Erling Smørgravcmp $DATA ${COPY} >/dev/null 2>&1 || fail "corrupted oldname after rename target exists (directory)" 55ce3adf43SDag-Erling Smørgrav 56ce3adf43SDag-Erling Smørgravrm -f ${COPY}.dd/* 57ce3adf43SDag-Erling Smørgravrm -rf ${COPY} 58ce3adf43SDag-Erling Smørgravcp ${DATA2} ${COPY} 59ce3adf43SDag-Erling Smørgravverbose "$tid: glob put files to local file" 60ce3adf43SDag-Erling Smørgravecho "put /bin/l* $COPY" | ${SFTP} -D ${SFTPSERVER} >/dev/null 2>&1 61*19261079SEd Mastecmp ${DATA2} ${COPY} || fail "put succeeded when it should have failed" 62ce3adf43SDag-Erling Smørgrav 63ce3adf43SDag-Erling Smørgravrm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd 64ce3adf43SDag-Erling Smørgrav 65ce3adf43SDag-Erling Smørgrav 66