blob: 72957d4cd263d5d761db1f6a78fc072e987d7679 [file] [log] [blame]
dtucker@openbsd.org2f2ffa42016-12-16 01:06:27 +00001# $OpenBSD: reexec.sh,v 1.10 2016/12/16 01:06:27 dtucker Exp $
Darren Tucker977a9d22004-06-25 13:45:18 +10002# Placed in the Public Domain.
3
4tid="reexec tests"
5
Darren Tucker59d928d2013-05-17 15:32:29 +10006SSHD_ORIG=$SSHD
7SSHD_COPY=$OBJ/sshd
Darren Tucker977a9d22004-06-25 13:45:18 +10008
9# Start a sshd and then delete it
Darren Tucker71b56432004-12-06 23:05:52 +110010start_sshd_copy ()
Darren Tucker977a9d22004-06-25 13:45:18 +100011{
12 cp $SSHD_ORIG $SSHD_COPY
13 SSHD=$SSHD_COPY
14 start_sshd
Darren Tucker977a9d22004-06-25 13:45:18 +100015 SSHD=$SSHD_ORIG
16}
17
Darren Tucker71b56432004-12-06 23:05:52 +110018# Do basic copy tests
19copy_tests ()
20{
21 rm -f ${COPY}
markus@openbsd.orgdad2b182015-03-03 22:35:19 +000022 for p in ${SSH_PROTOCOLS} ; do
Darren Tucker71b56432004-12-06 23:05:52 +110023 verbose "$tid: proto $p"
24 ${SSH} -nqo "Protocol=$p" -F $OBJ/ssh_config somehost \
25 cat ${DATA} > ${COPY}
26 if [ $? -ne 0 ]; then
27 fail "ssh cat $DATA failed"
28 fi
29 cmp ${DATA} ${COPY} || fail "corrupted copy"
30 rm -f ${COPY}
31 done
32}
33
Darren Tucker977a9d22004-06-25 13:45:18 +100034verbose "test config passing"
Darren Tucker71b56432004-12-06 23:05:52 +110035
Darren Tucker977a9d22004-06-25 13:45:18 +100036cp $OBJ/sshd_config $OBJ/sshd_config.orig
Darren Tucker977a9d22004-06-25 13:45:18 +100037start_sshd
Darren Tucker977a9d22004-06-25 13:45:18 +100038echo "InvalidXXX=no" >> $OBJ/sshd_config
39
Darren Tucker71b56432004-12-06 23:05:52 +110040copy_tests
Darren Tucker977a9d22004-06-25 13:45:18 +100041
dtucker@openbsd.org2f2ffa42016-12-16 01:06:27 +000042stop_sshd
Darren Tucker977a9d22004-06-25 13:45:18 +100043
44cp $OBJ/sshd_config.orig $OBJ/sshd_config
45
Darren Tuckerec1e15d2012-07-03 01:06:49 +100046# cygwin can't fork a deleted binary
47if [ "$os" != "cygwin" ]; then
48
Darren Tucker977a9d22004-06-25 13:45:18 +100049verbose "test reexec fallback"
50
Darren Tucker71b56432004-12-06 23:05:52 +110051start_sshd_copy
52rm -f $SSHD_COPY
Darren Tucker977a9d22004-06-25 13:45:18 +100053
Darren Tucker71b56432004-12-06 23:05:52 +110054copy_tests
Darren Tucker977a9d22004-06-25 13:45:18 +100055
dtucker@openbsd.org2f2ffa42016-12-16 01:06:27 +000056stop_sshd
Darren Tucker977a9d22004-06-25 13:45:18 +100057
58verbose "test reexec fallback without privsep"
59
60cp $OBJ/sshd_config.orig $OBJ/sshd_config
61echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config
62
Darren Tucker71b56432004-12-06 23:05:52 +110063start_sshd_copy
64rm -f $SSHD_COPY
Darren Tucker977a9d22004-06-25 13:45:18 +100065
Darren Tucker71b56432004-12-06 23:05:52 +110066copy_tests
Darren Tucker977a9d22004-06-25 13:45:18 +100067
dtucker@openbsd.org2f2ffa42016-12-16 01:06:27 +000068stop_sshd
Darren Tucker977a9d22004-06-25 13:45:18 +100069
Darren Tuckerec1e15d2012-07-03 01:06:49 +100070fi