Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/kern Avoid negating the minimum size of pid_t (this over...



details:   https://anonhg.NetBSD.org/src/rev/f5662d3071f2
branches:  trunk
changeset: 948290:f5662d3071f2
user:      nia <nia%NetBSD.org@localhost>
date:      Thu Dec 24 12:14:50 2020 +0000

description:
Avoid negating the minimum size of pid_t (this overflows).

Reported-by: syzbot+e2eb02f9dfaf4f2e6626%syzkaller.appspotmail.com@localhost

diffstat:

 sys/kern/kern_descrip.c |  7 +++++--
 sys/kern/kern_proc.c    |  7 +++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diffs (56 lines):

diff -r c7b1bf0f1a3e -r f5662d3071f2 sys/kern/kern_descrip.c
--- a/sys/kern/kern_descrip.c   Thu Dec 24 10:37:47 2020 +0000
+++ b/sys/kern/kern_descrip.c   Thu Dec 24 12:14:50 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_descrip.c,v 1.249 2020/08/28 10:20:14 christos Exp $      */
+/*     $NetBSD: kern_descrip.c,v 1.250 2020/12/24 12:14:50 nia Exp $   */
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_descrip.c,v 1.249 2020/08/28 10:20:14 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_descrip.c,v 1.250 2020/12/24 12:14:50 nia Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1767,6 +1767,9 @@
        pid_t id = *(const pid_t *)data;
        int error;
 
+       if (id == INT_MIN)
+               return EINVAL;
+
        switch (cmd) {
        case TIOCSPGRP:
                if (id < 0)
diff -r c7b1bf0f1a3e -r f5662d3071f2 sys/kern/kern_proc.c
--- a/sys/kern/kern_proc.c      Thu Dec 24 10:37:47 2020 +0000
+++ b/sys/kern/kern_proc.c      Thu Dec 24 12:14:50 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_proc.c,v 1.261 2020/09/17 11:37:35 martin Exp $   */
+/*     $NetBSD: kern_proc.c,v 1.262 2020/12/24 12:14:50 nia Exp $      */
 
 /*-
  * Copyright (c) 1999, 2006, 2007, 2008, 2020 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.261 2020/09/17 11:37:35 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_proc.c,v 1.262 2020/12/24 12:14:50 nia Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_kstack.h"
@@ -619,6 +619,9 @@
        struct session *session;
        int error;
 
+       if (pg_id == INT_MIN)
+               return EINVAL;
+
        mutex_enter(&proc_lock);
        if (pg_id < 0) {
                struct proc *p1 = proc_find(-pg_id);



Home | Main Index | Thread Index | Old Index