Module Name: src
Committed By: kamil
Date: Sat Oct 12 12:04:37 UTC 2019
Modified Files:
src/sys/kern: sys_ptrace_common.c
Log Message:
Avoid signed integer overflow for -lwp where lwp is INT_MIN
Reported-by: [email protected]
To generate a diff of this commit:
cvs rdiff -u -r1.66 -r1.67 src/sys/kern/sys_ptrace_common.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/sys_ptrace_common.c
diff -u src/sys/kern/sys_ptrace_common.c:1.66 src/sys/kern/sys_ptrace_common.c:1.67
--- src/sys/kern/sys_ptrace_common.c:1.66 Wed Oct 9 13:19:43 2019
+++ src/sys/kern/sys_ptrace_common.c Sat Oct 12 12:04:37 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_ptrace_common.c,v 1.66 2019/10/09 13:19:43 kamil Exp $ */
+/* $NetBSD: sys_ptrace_common.c,v 1.67 2019/10/12 12:04:37 kamil Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -118,7 +118,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.66 2019/10/09 13:19:43 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_ptrace_common.c,v 1.67 2019/10/12 12:04:37 kamil Exp $");
#ifdef _KERNEL_OPT
#include "opt_ptrace.h"
@@ -1202,8 +1202,12 @@ do_ptrace(struct ptrace_methods *ptm, st
signo = tmp;
tmp = 0; /* don't search for LWP */
}
- } else
+ } else if (tmp == INT_MIN) {
+ error = ESRCH;
+ break;
+ } else {
tmp = -tmp;
+ }
if (tmp > 0) {
if (req == PT_DETACH) {