switch calculuated thrsleep timeout to unsigned to prevent overflow
authortedu <tedu@openbsd.org>
Mon, 4 Jul 2016 16:12:52 +0000 (16:12 +0000)
committertedu <tedu@openbsd.org>
Mon, 4 Jul 2016 16:12:52 +0000 (16:12 +0000)
into negative values, which later causes a panic.
reported by Tim Newsham at NCC.
ok guenther

sys/kern/kern_synch.c

index 83e7eba..d72e0f5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: kern_synch.c,v 1.131 2016/03/29 02:43:47 jsg Exp $    */
+/*     $OpenBSD: kern_synch.c,v 1.132 2016/07/04 16:12:52 tedu Exp $   */
 /*     $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */
 
 /*
@@ -491,7 +491,7 @@ thrsleep(struct proc *p, struct sys___thrsleep_args *v)
        long ident = (long)SCARG(uap, ident);
        struct timespec *tsp = (struct timespec *)SCARG(uap, tp);
        void *lock = SCARG(uap, lock);
-       long long to_ticks = 0;
+       unsigned long long to_ticks = 0;
        int abort, error;
        clockid_t clock_id = SCARG(uap, clock_id) & 0x7;
        int lockflags = SCARG(uap, clock_id) & 0x8;