11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	$OpenBSD: reexec.sh,v 1.5 2004/10/08 02:01:50 djm Exp $
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	Placed in the Public Domain.
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtid="reexec tests"
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodDATA=/bin/ls${EXEEXT}
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodCOPY=${OBJ}/copy
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodSSHD_ORIG=$SSHD${EXEEXT}
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodSSHD_COPY=$OBJ/sshd${EXEEXT}
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# Start a sshd and then delete it
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstart_sshd_copy ()
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	cp $SSHD_ORIG $SSHD_COPY
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	SSHD=$SSHD_COPY
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	start_sshd
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	SSHD=$SSHD_ORIG
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# Do basic copy tests
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcopy_tests ()
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood{
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	rm -f ${COPY}
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	for p in 1 2; do
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		verbose "$tid: proto $p"
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		    cat ${DATA} > ${COPY}
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		if [ $? -ne 0 ]; then
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			fail "ssh cat $DATA failed"
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fi
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		cmp ${DATA} ${COPY}		|| fail "corrupted copy"
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		rm -f ${COPY}
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	done
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "test config passing"
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcp $OBJ/sshd_config $OBJ/sshd_config.orig
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstart_sshd
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodecho "InvalidXXX=no" >> $OBJ/sshd_config
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcopy_tests
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood$SUDO kill `$SUDO cat $PIDFILE`
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $PIDFILE
461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcp $OBJ/sshd_config.orig $OBJ/sshd_config
481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "test reexec fallback"
501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstart_sshd_copy
521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $SSHD_COPY
531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcopy_tests
551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood$SUDO kill `$SUDO cat $PIDFILE`
571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $PIDFILE
581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodverbose "test reexec fallback without privsep"
601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcp $OBJ/sshd_config.orig $OBJ/sshd_config
621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodecho "UsePrivilegeSeparation=no" >> $OBJ/sshd_config
631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodstart_sshd_copy
651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $SSHD_COPY
661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodcopy_tests
681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood$SUDO kill `$SUDO cat $PIDFILE`
701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $PIDFILE
711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
73