Module Name: src Committed By: kamil Date: Sun Jun 24 12:05:41 UTC 2018
Modified Files: src/sys/sys: fd_set.h Log Message: Prevent signed integer left shift UB in FD_SET(), FD_CLR(), FD_ISSET() Set the type of shifted integer 1 to unsigned int. Detected with MKSANITIZER/UBSan in sysinst(8). To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/sys/fd_set.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/sys/fd_set.h diff -u src/sys/sys/fd_set.h:1.6 src/sys/sys/fd_set.h:1.7 --- src/sys/sys/fd_set.h:1.6 Fri Nov 6 15:41:25 2015 +++ src/sys/sys/fd_set.h Sun Jun 24 12:05:40 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: fd_set.h,v 1.6 2015/11/06 15:41:25 christos Exp $ */ +/* $NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -68,11 +68,11 @@ typedef struct fd_set { } fd_set; #define FD_SET(n, p) \ - ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] |= (1 << ((n) & __NFDMASK))) + ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] |= (1U << ((n) & __NFDMASK))) #define FD_CLR(n, p) \ - ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] &= ~(1 << ((n) & __NFDMASK))) + ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] &= ~(1U << ((n) & __NFDMASK))) #define FD_ISSET(n, p) \ - ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] & (1 << ((n) & __NFDMASK))) + ((p)->fds_bits[(unsigned)(n) >> __NFDSHIFT] & (1U << ((n) & __NFDMASK))) #if __GNUC_PREREQ__(2, 95) #define FD_ZERO(p) (void)__builtin_memset((p), 0, sizeof(*(p))) #else