Module Name: src Committed By: kamil Date: Tue Jul 3 23:11:06 UTC 2018
Modified Files: src/sys/kern: kern_descrip.c Log Message: Avoid unportable signed integer left shift in fd_copy() Detected with Kernel Undefined Behavior Sanitizer. There were at least a single place reported, for consistency fix all the left bit shift operations. sys/kern/kern_descrip.c:1492:3, left shift of 1 by 31 places cannot be represented in type 'int' sys/kern/kern_descrip.c:1493:28, left shift of 1 by 31 places cannot be represented in type 'int' Reported by <Harry Pantazis> To generate a diff of this commit: cvs rdiff -u -r1.233 -r1.234 src/sys/kern/kern_descrip.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/kern_descrip.c diff -u src/sys/kern/kern_descrip.c:1.233 src/sys/kern/kern_descrip.c:1.234 --- src/sys/kern/kern_descrip.c:1.233 Tue Jul 3 22:49:51 2018 +++ src/sys/kern/kern_descrip.c Tue Jul 3 23:11:06 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_descrip.c,v 1.233 2018/07/03 22:49:51 kamil Exp $ */ +/* $NetBSD: kern_descrip.c,v 1.234 2018/07/03 23:11:06 kamil 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.233 2018/07/03 22:49:51 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_descrip.c,v 1.234 2018/07/03 23:11:06 kamil Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1489,13 +1489,13 @@ fd_copy(void) /* Fix up bitmaps. */ j = i >> NDENTRYSHIFT; - KASSERT((newfdp->fd_lomap[j] & (1 << (i & NDENTRYMASK))) == 0); - newfdp->fd_lomap[j] |= 1 << (i & NDENTRYMASK); + KASSERT((newfdp->fd_lomap[j] & (1U << (i & NDENTRYMASK))) == 0); + newfdp->fd_lomap[j] |= 1U << (i & NDENTRYMASK); if (__predict_false(newfdp->fd_lomap[j] == ~0)) { KASSERT((newfdp->fd_himap[j >> NDENTRYSHIFT] & - (1 << (j & NDENTRYMASK))) == 0); + (1U << (j & NDENTRYMASK))) == 0); newfdp->fd_himap[j >> NDENTRYSHIFT] |= - 1 << (j & NDENTRYMASK); + 1U << (j & NDENTRYMASK); } newlast = i; }