Index: linux/arch/m68knommu/kernel/ptrace.c =================================================================== RCS file: /home/cvs/new-wave/linux/arch/m68knommu/kernel/ptrace.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- linux/arch/m68knommu/kernel/ptrace.c 1999/11/22 03:47:36 1.1 +++ linux/arch/m68knommu/kernel/ptrace.c 2000/07/28 05:21:08 1.2 @@ -195,6 +195,9 @@ unsigned long tmp; int res; + res = verify_area(VERIFY_READ, (void *) addr, sizeof(long)); + if (res < 0) + return(res); res = read_long(child, addr, &tmp); if (res < 0) return res; @@ -237,8 +240,14 @@ /* when I and D space are separate, this will have to be fixed. */ case PTRACE_POKETEXT: /* write the word at location addr. */ - case PTRACE_POKEDATA: + case PTRACE_POKEDATA: { + int res; + + res = verify_area(VERIFY_WRITE, (void *) addr, sizeof(long)); + if (res < 0) + return(res); return write_long(child,addr,data); + } case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ if ((addr & 3) || addr < 0 || addr >= sizeof(struct user))