diff options
| author | manu <manu@NetBSD.org> | 2001-06-04 07:44:39 +0000 |
|---|---|---|
| committer | manu <manu@NetBSD.org> | 2001-06-04 07:44:39 +0000 |
| commit | ae80f433ec7e00eb4130f674bf35f78cfeefe3d3 (patch) | |
| tree | aefa19a04bd9ec856fc3a9b828d08ca829b237f6 /sys/compat/linux/common | |
| parent | 147c9186b5b8b6c99a253c141c2961d3fe3e37d7 (diff) | |
Fixes by Chuck Silvers to make ptrace PEEKTEXT more 64 bit friendy
Diffstat (limited to 'sys/compat/linux/common')
| -rw-r--r-- | sys/compat/linux/common/linux_misc.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/sys/compat/linux/common/linux_misc.c b/sys/compat/linux/common/linux_misc.c index d1d956f4e99..d0335f40a76 100644 --- a/sys/compat/linux/common/linux_misc.c +++ b/sys/compat/linux/common/linux_misc.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_misc.c,v 1.91 2001/06/03 18:22:27 manu Exp $ */ +/* $NetBSD: linux_misc.c,v 1.92 2001/06/04 07:44:39 manu Exp $ */ /*- * Copyright (c) 1995, 1998, 1999 The NetBSD Foundation, Inc. @@ -1230,9 +1230,6 @@ linux_sys_ptrace(p, v, retval) while (*ptr != -1) if (*ptr++ == request) { struct sys_ptrace_args pta; - caddr_t sg; - - sg = stackgap_init(p->p_emul); SCARG(&pta, req) = *ptr; SCARG(&pta, pid) = SCARG(uap, pid); @@ -1249,18 +1246,18 @@ linux_sys_ptrace(p, v, retval) SCARG(&pta, addr) = (caddr_t) 1; error = sys_ptrace(p, &pta, retval); - if (!error) - switch (request) { - case LINUX_PTRACE_PEEKTEXT: - case LINUX_PTRACE_PEEKDATA: - error = copyout (retval, - (caddr_t)(u_long)SCARG(&pta, data), - sizeof retval); - *retval = SCARG(&pta, data); - break; - default: - break; - } + if (error) + return error; + switch (request) { + case LINUX_PTRACE_PEEKTEXT: + case LINUX_PTRACE_PEEKDATA: + error = copyout (retval, + (caddr_t)SCARG(uap, data), sizeof *retval); + *retval = SCARG(uap, data); + break; + default: + break; + } return error; } else |
