agent-ptrace.sh revision 255774
150276Speter# $OpenBSD: agent-ptrace.sh,v 1.1 2002/12/09 15:38:30 markus Exp $ 2166124Srafan# Placed in the Public Domain. 350276Speter 450276Spetertid="disallow agent ptrace attach" 550276Speter 650276Speterif have_prog uname ; then 750276Speter case `uname` in 850276Speter AIX|CYGWIN*|OSF1) 950276Speter echo "skipped (not supported on this platform)" 1050276Speter exit 0 1150276Speter ;; 1250276Speter esac 1350276Speterfi 1450276Speter 1550276Speterif have_prog gdb ; then 1650276Speter : ok 1750276Speterelse 1850276Speter echo "skipped (gdb not found)" 1950276Speter exit 0 2050276Speterfi 2150276Speter 2250276Speterif test -z "$SUDO" ; then 2350276Speter echo "skipped (SUDO not set)" 2450276Speter exit 0 2550276Speterelse 2650276Speter $SUDO chown 0 ${SSHAGENT} 2750276Speter $SUDO chgrp 0 ${SSHAGENT} 2850276Speter $SUDO chmod 2755 ${SSHAGENT} 2950276Speterfi 30166124Srafan 3150276Spetertrace "start agent" 32166124Srafaneval `${SSHAGENT} -s` > /dev/null 3350276Speterr=$? 3450276Speterif [ $r -ne 0 ]; then 35166124Srafan fail "could not start ssh-agent: exit code $r" 3650276Speterelse 3750276Speter # ls -l ${SSH_AUTH_SOCK} 3850276Speter gdb ${SSHAGENT} ${SSH_AGENT_PID} > ${OBJ}/gdb.out 2>&1 << EOF 3950276Speter quit 4050276SpeterEOF 4150276Speter if [ $? -ne 0 ]; then 4250276Speter fail "gdb failed: exit code $?" 4350276Speter fi 4450276Speter egrep 'ptrace: Operation not permitted.|procfs:.*Permission denied.|ttrace.*Permission denied.|procfs:.*: Invalid argument.|Unable to access task ' >/dev/null ${OBJ}/gdb.out 4550276Speter r=$? 4650276Speter rm -f ${OBJ}/gdb.out 4750276Speter if [ $r -ne 0 ]; then 4850276Speter fail "ptrace succeeded?: exit code $r" 4950276Speter fi 5050276Speter 5176726Speter trace "kill agent" 52166124Srafan ${SSHAGENT} -k > /dev/null 5350276Speterfi 5450276Speter