xref: /freebsd/crypto/openssh/regress/agent-ptrace.sh (revision ce3adf4362fcca6a43e500b2531f0038adbfbd21)
1*ce3adf43SDag-Erling Smørgrav#	$OpenBSD: agent-ptrace.sh,v 1.1 2002/12/09 15:38:30 markus Exp $
2*ce3adf43SDag-Erling Smørgrav#	Placed in the Public Domain.
3*ce3adf43SDag-Erling Smørgrav
4*ce3adf43SDag-Erling Smørgravtid="disallow agent ptrace attach"
5*ce3adf43SDag-Erling Smørgrav
6*ce3adf43SDag-Erling Smørgravif have_prog uname ; then
7*ce3adf43SDag-Erling Smørgrav	case `uname` in
8*ce3adf43SDag-Erling Smørgrav	AIX|CYGWIN*|OSF1)
9*ce3adf43SDag-Erling Smørgrav		echo "skipped (not supported on this platform)"
10*ce3adf43SDag-Erling Smørgrav		exit 0
11*ce3adf43SDag-Erling Smørgrav		;;
12*ce3adf43SDag-Erling Smørgrav	esac
13*ce3adf43SDag-Erling Smørgravfi
14*ce3adf43SDag-Erling Smørgrav
15*ce3adf43SDag-Erling Smørgravif have_prog gdb ; then
16*ce3adf43SDag-Erling Smørgrav	: ok
17*ce3adf43SDag-Erling Smørgravelse
18*ce3adf43SDag-Erling Smørgrav	echo "skipped (gdb not found)"
19*ce3adf43SDag-Erling Smørgrav	exit 0
20*ce3adf43SDag-Erling Smørgravfi
21*ce3adf43SDag-Erling Smørgrav
22*ce3adf43SDag-Erling Smørgravif test -z "$SUDO" ; then
23*ce3adf43SDag-Erling Smørgrav	echo "skipped (SUDO not set)"
24*ce3adf43SDag-Erling Smørgrav	exit 0
25*ce3adf43SDag-Erling Smørgravelse
26*ce3adf43SDag-Erling Smørgrav	$SUDO chown 0 ${SSHAGENT}
27*ce3adf43SDag-Erling Smørgrav	$SUDO chgrp 0 ${SSHAGENT}
28*ce3adf43SDag-Erling Smørgrav	$SUDO chmod 2755 ${SSHAGENT}
29*ce3adf43SDag-Erling Smørgravfi
30*ce3adf43SDag-Erling Smørgrav
31*ce3adf43SDag-Erling Smørgravtrace "start agent"
32*ce3adf43SDag-Erling Smørgraveval `${SSHAGENT} -s` > /dev/null
33*ce3adf43SDag-Erling Smørgravr=$?
34*ce3adf43SDag-Erling Smørgravif [ $r -ne 0 ]; then
35*ce3adf43SDag-Erling Smørgrav	fail "could not start ssh-agent: exit code $r"
36*ce3adf43SDag-Erling Smørgravelse
37*ce3adf43SDag-Erling Smørgrav	# ls -l ${SSH_AUTH_SOCK}
38*ce3adf43SDag-Erling Smørgrav	gdb ${SSHAGENT} ${SSH_AGENT_PID} > ${OBJ}/gdb.out 2>&1 << EOF
39*ce3adf43SDag-Erling Smørgrav		quit
40*ce3adf43SDag-Erling SmørgravEOF
41*ce3adf43SDag-Erling Smørgrav	if [ $? -ne 0 ]; then
42*ce3adf43SDag-Erling Smørgrav		fail "gdb failed: exit code $?"
43*ce3adf43SDag-Erling Smørgrav	fi
44*ce3adf43SDag-Erling Smørgrav	egrep 'ptrace: Operation not permitted.|procfs:.*Permission denied.|ttrace.*Permission denied.|procfs:.*: Invalid argument.|Unable to access task ' >/dev/null ${OBJ}/gdb.out
45*ce3adf43SDag-Erling Smørgrav	r=$?
46*ce3adf43SDag-Erling Smørgrav	rm -f ${OBJ}/gdb.out
47*ce3adf43SDag-Erling Smørgrav	if [ $r -ne 0 ]; then
48*ce3adf43SDag-Erling Smørgrav		fail "ptrace succeeded?: exit code $r"
49*ce3adf43SDag-Erling Smørgrav	fi
50*ce3adf43SDag-Erling Smørgrav
51*ce3adf43SDag-Erling Smørgrav	trace "kill agent"
52*ce3adf43SDag-Erling Smørgrav	${SSHAGENT} -k > /dev/null
53*ce3adf43SDag-Erling Smørgravfi
54