12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # $OpenBSD: sftp-badcmds.sh,v 1.7 2020/03/13 03:18:45 djm Exp $
- # Placed in the Public Domain.
- tid="sftp invalid commands"
- DATA2=/bin/sh${EXEEXT}
- NONEXIST=/NONEXIST.$$
- GLOBFILES=$(
- cd /bin
- echo l*
- )
- rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd
- rm -f ${COPY}
- verbose "$tid: get nonexistent"
- echo "get $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "get nonexistent failed"
- test -f ${COPY} && fail "existing copy after get nonexistent"
- rm -f ${COPY}.dd/*
- verbose "$tid: glob get to nonexistent directory"
- echo "get /bin/l* $NONEXIST" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "get nonexistent failed"
- for x in $GLOBFILES; do
- test -f ${COPY}.dd/$x && fail "existing copy after get nonexistent"
- done
- rm -f ${COPY}
- verbose "$tid: put nonexistent"
- echo "put $NONEXIST $COPY" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "put nonexistent failed"
- test -f ${COPY} && fail "existing copy after put nonexistent"
- rm -f ${COPY}.dd/*
- verbose "$tid: glob put to nonexistent directory"
- echo "put /bin/l* ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "put nonexistent failed"
- for x in $GLOBFILES; do
- test -f ${COPY}.dd/$x && fail "existing copy after nonexistent"
- done
- rm -f ${COPY}
- verbose "$tid: rename nonexistent"
- echo "rename $NONEXIST ${COPY}.1" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "rename nonexist failed"
- test -f ${COPY}.1 && fail "file exists after rename nonexistent"
- rm -rf ${COPY} ${COPY}.dd
- cp $DATA $COPY
- mkdir ${COPY}.dd
- verbose "$tid: rename target exists (directory)"
- echo "rename $COPY ${COPY}.dd" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1 ||
- fail "rename target exists (directory) failed"
- test -f ${COPY} || fail "oldname missing after rename target exists (directory)"
- test -d ${COPY}.dd || fail "newname missing after rename target exists (directory)"
- cmp $DATA ${COPY} > /dev/null 2>&1 || fail "corrupted oldname after rename target exists (directory)"
- rm -f ${COPY}.dd/*
- rm -rf ${COPY}
- cp ${DATA2} ${COPY}
- verbose "$tid: glob put files to local file"
- echo "put /bin/l* $COPY" | ${SFTP} -D ${SFTPSERVER} > /dev/null 2>&1
- cmp ${DATA2} ${COPY} || fail "put succeeded when it should have failed"
- rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd
|