Module Name: src Committed By: kamil Date: Tue May 28 03:53:29 UTC 2019
Modified Files: src/sys/ufs/ffs: ffs_subr.c Log Message: Avoid unportable shift base -1 in ffs_subr.c Cast the start variable before the modulo opration to unsigned int. Detected with kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/sys/ufs/ffs/ffs_subr.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/ufs/ffs/ffs_subr.c diff -u src/sys/ufs/ffs/ffs_subr.c:1.50 src/sys/ufs/ffs/ffs_subr.c:1.51 --- src/sys/ufs/ffs/ffs_subr.c:1.50 Wed Jul 4 02:02:15 2018 +++ src/sys/ufs/ffs/ffs_subr.c Tue May 28 03:53:28 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_subr.c,v 1.50 2018/07/04 02:02:15 kamil Exp $ */ +/* $NetBSD: ffs_subr.c,v 1.51 2019/05/28 03:53:28 kamil Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -36,7 +36,7 @@ #endif #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.50 2018/07/04 02:02:15 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.51 2019/05/28 03:53:28 kamil Exp $"); #include <sys/param.h> @@ -313,7 +313,7 @@ ffs_clusteracct(struct fs *fs, struct cg end = ufs_rw32(cgp->cg_nclusterblks, needswap); mapp = &freemapp[start / NBBY]; map = *mapp++; - bit = 1U << (start % NBBY); + bit = 1U << ((unsigned int)start % NBBY); for (i = start; i < end; i++) { if ((map & bit) == 0) break; @@ -334,7 +334,7 @@ ffs_clusteracct(struct fs *fs, struct cg end = -1; mapp = &freemapp[start / NBBY]; map = *mapp--; - bit = 1U << (start % NBBY); + bit = 1U << ((unsigned int)start % NBBY); for (i = start; i > end; i--) { if ((map & bit) == 0) break;