summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1998-12-26 17:14:37 +0000
committerdfr <dfr@FreeBSD.org>1998-12-26 17:14:37 +0000
commit60ea4e55cbf87c368ca1d5684774c2362ebc64ce (patch)
tree249c36751275b7be70e2fd23e9e21539bee10dbc /sys
parent824f31bd96321a35b293500c91186981075394f8 (diff)
downloadFreeBSD-src-60ea4e55cbf87c368ca1d5684774c2362ebc64ce.zip
FreeBSD-src-60ea4e55cbf87c368ca1d5684774c2362ebc64ce.tar.gz
Tweak ptrace(PT_READ_U) so that the last alpha register can be read.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/sys_process.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index 330a2d6..4756127 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: sys_process.c,v 1.39 1998/07/15 04:43:49 bde Exp $
+ * $Id: sys_process.c,v 1.40 1998/07/29 18:41:30 dfr Exp $
*/
#include <sys/param.h>
@@ -407,7 +407,10 @@ ptrace(curp, uap)
return (error);
case PT_READ_U:
- if ((uintptr_t)uap->addr > UPAGES * PAGE_SIZE - sizeof(long)) {
+ if ((uintptr_t)uap->addr > UPAGES * PAGE_SIZE - sizeof(int)) {
+ return EFAULT;
+ }
+ if ((uintptr_t)uap->addr & (sizeof(int) - 1)) {
return EFAULT;
}
if (ptrace_read_u_check(p,(vm_offset_t) uap->addr,
OpenPOWER on IntegriCloud