1 # $OpenBSD: reexec.sh,v 1.5 2004/10/08 02:01:50 djm Exp $ 2 # Placed in the Public Domain. 3 4 tid="reexec tests" 5 6 DATA=/bin/ls${EXEEXT} 7 COPY=${OBJ}/copy 8 SSHD_ORIG=$SSHD${EXEEXT} 9 SSHD_COPY=$OBJ/sshd${EXEEXT} 10 11 # Start a sshd and then delete it 12 start_sshd_copy () 13 { 14 cp $SSHD_ORIG $SSHD_COPY 15 SSHD=$SSHD_COPY 16 start_sshd 17 SSHD=$SSHD_ORIG 18 } 19 20 # Do basic copy tests 21 copy_tests () 22 { 23 rm -f ${COPY} 24 for p in 1 2; do 25 verbose "$tid: proto $p" 26 ${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \ 27 cat ${DATA} > ${COPY} 28 if [ $? -ne 0 ]; then 29 fail "ssh cat $DATA failed" 30 fi 31 cmp ${DATA} ${COPY} || fail "corrupted copy" 32 rm -f ${COPY} 33 done 34 } 35 36 verbose "test config passing" 37 38 cp $OBJ/sshd_config $OBJ/sshd_config.orig 39 start_sshd 40 echo "InvalidXXX=no" >> $OBJ/sshd_config 41 42 copy_tests 43 44 $SUDO kill `$SUDO cat $PIDFILE` 45 rm -f $PIDFILE 46 47 cp $OBJ/sshd_config.orig $OBJ/sshd_config 48 49 verbose "test reexec fallback" 50 51 start_sshd_copy 52 rm -f $SSHD_COPY 53 54 copy_tests 55 56 $SUDO kill `$SUDO cat $PIDFILE` 57 rm -f $PIDFILE 58 59 verbose "test reexec fallback without privsep" 60 61 cp $OBJ/sshd_config.orig $OBJ/sshd_config 62 echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config 63 64 start_sshd_copy 65 rm -f $SSHD_COPY 66 67 copy_tests 68 69 $SUDO kill `$SUDO cat $PIDFILE` 70 rm -f $PIDFILE 71 72 73