mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-12-27 12:22:09 +00:00
ed6b0c5fc2
[sftp-batch.sh sftp-badcmds.sh sftp.sh sftp-cmds.sh sftp-glob.sh] date: 2009/08/13 01:11:19; author: djm; state: Exp; lines: +10 -7 Swizzle options: "-P sftp_server_path" moves to "-D sftp_server_path", add "-P port" to match scp(1). Fortunately, the -P option is only really used by our regression scripts. part of larger patch from carlosvsilvapt@gmail.com for his Google Summer of Code work; ok deraadt markus
68 lines
2.3 KiB
Bash
68 lines
2.3 KiB
Bash
# $OpenBSD: sftp-badcmds.sh,v 1.4 2009/08/13 01:11:55 djm Exp $
|
|
# Placed in the Public Domain.
|
|
|
|
tid="sftp invalid commands"
|
|
|
|
DATA=/bin/ls${EXEEXT}
|
|
DATA2=/bin/sh${EXEEXT}
|
|
NONEXIST=/NONEXIST.$$
|
|
COPY=${OBJ}/copy
|
|
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 successed when it should have failed"
|
|
|
|
rm -rf ${COPY} ${COPY}.1 ${COPY}.2 ${COPY}.dd
|
|
|
|
|