|  | #	$OpenBSD: reexec.sh,v 1.5 2004/10/08 02:01:50 djm Exp $ | 
|  | #	Placed in the Public Domain. | 
|  |  | 
|  | tid="reexec tests" | 
|  |  | 
|  | DATA=/bin/ls${EXEEXT} | 
|  | COPY=${OBJ}/copy | 
|  | SSHD_ORIG=$SSHD${EXEEXT} | 
|  | SSHD_COPY=$OBJ/sshd${EXEEXT} | 
|  |  | 
|  | # Start a sshd and then delete it | 
|  | start_sshd_copy () | 
|  | { | 
|  | cp $SSHD_ORIG $SSHD_COPY | 
|  | SSHD=$SSHD_COPY | 
|  | start_sshd | 
|  | SSHD=$SSHD_ORIG | 
|  | } | 
|  |  | 
|  | # Do basic copy tests | 
|  | copy_tests () | 
|  | { | 
|  | rm -f ${COPY} | 
|  | for p in 1 2; do | 
|  | verbose "$tid: proto $p" | 
|  | ${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \ | 
|  | cat ${DATA} > ${COPY} | 
|  | if [ $? -ne 0 ]; then | 
|  | fail "ssh cat $DATA failed" | 
|  | fi | 
|  | cmp ${DATA} ${COPY}		|| fail "corrupted copy" | 
|  | rm -f ${COPY} | 
|  | done | 
|  | } | 
|  |  | 
|  | verbose "test config passing" | 
|  |  | 
|  | cp $OBJ/sshd_config $OBJ/sshd_config.orig | 
|  | start_sshd | 
|  | echo "InvalidXXX=no" >> $OBJ/sshd_config | 
|  |  | 
|  | copy_tests | 
|  |  | 
|  | $SUDO kill `$SUDO cat $PIDFILE` | 
|  | rm -f $PIDFILE | 
|  |  | 
|  | cp $OBJ/sshd_config.orig $OBJ/sshd_config | 
|  |  | 
|  | verbose "test reexec fallback" | 
|  |  | 
|  | start_sshd_copy | 
|  | rm -f $SSHD_COPY | 
|  |  | 
|  | copy_tests | 
|  |  | 
|  | $SUDO kill `$SUDO cat $PIDFILE` | 
|  | rm -f $PIDFILE | 
|  |  | 
|  | verbose "test reexec fallback without privsep" | 
|  |  | 
|  | cp $OBJ/sshd_config.orig $OBJ/sshd_config | 
|  | echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config | 
|  |  | 
|  | start_sshd_copy | 
|  | rm -f $SSHD_COPY | 
|  |  | 
|  | copy_tests | 
|  |  | 
|  | $SUDO kill `$SUDO cat $PIDFILE` | 
|  | rm -f $PIDFILE | 
|  |  | 
|  |  |