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