Index: sys/i386/isa/spigot.c =================================================================== RCS file: /home/ncvs/src/sys/i386/isa/spigot.c,v retrieving revision 1.44 diff -c -p -r1.44 spigot.c *** sys/i386/isa/spigot.c 29 Jan 2000 16:17:36 -0000 1.44 --- sys/i386/isa/spigot.c 7 Aug 2003 14:50:09 -0000 *************** struct spigot_info *info; *** 221,226 **** --- 221,228 ---- if(!data) return(EINVAL); switch(cmd){ case SPIGOT_SETINT: + if (*(int *)data < 0 || *(int *)data > _SIG_MAXSIG) + return (EINVAL); ss->p = p; ss->signal_num = *((int *)data); break; Index: sys/kern/sys_process.c =================================================================== RCS file: /home/ncvs/src/sys/kern/sys_process.c,v retrieving revision 1.51.2.4 diff -c -p -r1.51.2.4 sys_process.c *** sys/kern/sys_process.c 17 Jun 2002 19:23:41 -0000 1.51.2.4 --- sys/kern/sys_process.c 7 Aug 2003 14:50:40 -0000 *************** ptrace(curp, uap) *** 338,344 **** case PT_STEP: case PT_CONTINUE: case PT_DETACH: ! if ((uap->req != PT_STEP) && ((unsigned)uap->data >= NSIG)) return EINVAL; PHOLD(p); --- 338,345 ---- case PT_STEP: case PT_CONTINUE: case PT_DETACH: ! /* Zero means do not send any signal */ ! if (uap->data < 0 || uap->data > _SIG_MAXSIG) return EINVAL; PHOLD(p);