In article <19990.1566969...@splode.eterna.com.au>, matthew green <m...@eterna.com.au> wrote: >> 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? > >i would have made buf_nbuf() return size_t.
Or u_int which is what nbuf is... christos