Module Name: src Committed By: msaitoh Date: Mon Aug 26 10:24:39 UTC 2019
Modified Files: src/sys/kern: vfs_bio.c src/sys/sys: buf.h Log Message: Change buf_nbuf()'s return value from int to u_int to avoid undefined behavior in wapbl_start() which extended int to size_t. Error message was: > UBSan: Undefined Behavior in ../../../../kern/vfs_wapbl.c:609:41, signed > integer overflow: 3345138 * 1024 cannot be represented in type 'int' > /* XXX maybe use filesystem fragment size instead of 1024 */ > /* XXX fix actual number of buffers reserved per filesystem. */ > wl->wl_bufcount_max = (buf_nbuf() / 2) * 1024; Need more work? To generate a diff of this commit: cvs rdiff -u -r1.278 -r1.279 src/sys/kern/vfs_bio.c cvs rdiff -u -r1.130 -r1.131 src/sys/sys/buf.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/kern/vfs_bio.c diff -u src/sys/kern/vfs_bio.c:1.278 src/sys/kern/vfs_bio.c:1.279 --- src/sys/kern/vfs_bio.c:1.278 Sat Nov 24 17:52:39 2018 +++ src/sys/kern/vfs_bio.c Mon Aug 26 10:24:39 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_bio.c,v 1.278 2018/11/24 17:52:39 maxv Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.279 2019/08/26 10:24:39 msaitoh Exp $ */ /*- * Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -123,7 +123,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.278 2018/11/24 17:52:39 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.279 2019/08/26 10:24:39 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_bufcache.h" @@ -2177,7 +2177,7 @@ bbusy(buf_t *bp, bool intr, int timo, km * Nothing outside this file should really need to know about nbuf, * but a few things still want to read it, so give them a way to do that. */ -int +u_int buf_nbuf(void) { Index: src/sys/sys/buf.h diff -u src/sys/sys/buf.h:1.130 src/sys/sys/buf.h:1.131 --- src/sys/sys/buf.h:1.130 Fri Jun 28 14:56:45 2019 +++ src/sys/sys/buf.h Mon Aug 26 10:24:39 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: buf.h,v 1.130 2019/06/28 14:56:45 jmcneill Exp $ */ +/* $NetBSD: buf.h,v 1.131 2019/08/26 10:24:39 msaitoh Exp $ */ /*- * Copyright (c) 1999, 2000, 2007, 2008 The NetBSD Foundation, Inc. @@ -311,7 +311,7 @@ void vfs_buf_print(buf_t *, int, void (* void buf_init(buf_t *); void buf_destroy(buf_t *); int bbusy(buf_t *, bool, int, kmutex_t *); -int buf_nbuf(void); +u_int buf_nbuf(void); void biohist_init(void);