freebsd-dev/sys
Mark Johnston 2783335cae blist: Correct the node count computed in blist_create()
Commit bb4a27f927 added the ability to allocate a span of blocks
crossing a meta node boundary.  To ensure that blst_next_leaf_alloc()
does not walk past the end of the tree, an extra all-zero meta node
needs to be present at the end of the allocation, and
blst_next_leaf_alloc() is implemented such that the presence of this
node terminates the search.

blist_create() computes the number of nodes required.  It had two
problems:
1. When the size of the blist is a power of BLIST_RADIX, we would
   unnecessarily allocate an extra level in the tree.
2. When the size of the blist is a multiple of BLIST_RADIX, we would
   fail to allocate a terminator node.  In this case,
   blst_next_leaf_alloc() could scan beyond the bounds of the
   allocation.  This was found using KASAN.

Modify blist_create() to handle these cases correctly.

Reported by:	pho
Reviewed by:	dougm
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D31158
2021-07-13 17:47:27 -04:00
..
amd64 vmm: Fix AMD-vi using wrong rid range 2021-07-14 01:53:10 +08:00
arm Revert "Pass the syscall number to capsicum permission-denied signals" 2021-07-10 20:26:01 +01:00
arm64 linux(4): remove unfinished vsyscall bits on arm64 2021-07-13 09:52:18 +00:00
bsm
cam cam_iosched: use tunable flag and make a bool really a bool 2021-07-13 14:13:21 -06:00
cddl
compat linux(4): Improve comment about SA_RESTORER 2021-07-13 11:13:17 +01:00
conf cxgbe(4): Update firmwares to 1.26.0.0. 2021-07-12 21:25:36 -07:00
contrib zfs: merge openzfs/zfs@07a4c76e9 (master) into main 2021-07-12 23:24:45 +02:00
crypto ossl: Use crypto_cursor_segment(). 2021-05-25 16:59:19 -07:00
ddb fix style nit: space after if 2021-05-05 15:26:09 -06:00
dev Fix to call callout_init with correct inputs from axp driver 2021-07-13 14:38:31 +00:00
dts dts: Bump the freebsd branding version to 5.13 2021-07-01 18:48:56 +02:00
fs fifo: Explicitly initialize generation numbers when opening 2021-07-13 17:45:49 -04:00
gdb
geom graid3: Zero the metadata block before writing 2021-07-13 17:46:02 -04:00
gnu
i386 igc(4): Introduce new driver for the Intel I225 Ethernet controller. 2021-07-12 14:57:18 +10:00
isa newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
kern blist: Correct the node count computed in blist_create() 2021-07-13 17:47:27 -04:00
kgssapi
libkern Use '.arch_extension crc' in the arm64 crc32 code 2021-05-06 07:42:35 +00:00
mips Revert "Pass the syscall number to capsicum permission-denied signals" 2021-07-10 20:26:01 +01:00
modules cxgbe(4): Update firmwares to 1.26.0.0. 2021-07-12 21:25:36 -07:00
net pf: add DIOCGETSTATESV2 2021-07-09 10:29:53 +02:00
net80211 net80211: ieee80211_probereq_ie fix length calculation for hw scans 2021-06-28 12:17:11 +00:00
netgraph Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
netinet tcp: TCP_LRO getting bad checksums and sending it in to TCP incorrectly. 2021-07-13 12:45:15 -04:00
netinet6 sctp: Fix errno in case of association setup failures 2021-07-09 23:19:25 +02:00
netipsec ipsec: globalize lft zone and zero out buffers at allocation time 2021-06-28 08:14:26 +00:00
netpfil pf: bound DIOCGETSTATESV2 memory use 2021-07-09 10:30:02 +02:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-05-26 10:45:40 -04:00
nfs
nfsclient
nfsserver
nlm
ofed Fix LINT kernel build issues after c3987b8ea7 . 2021-07-12 18:00:30 +02:00
opencrypto crypto: Remove now-unused crypto_cursor_seg{base,len}. 2021-06-16 15:23:16 -07:00
powerpc Revert "Pass the syscall number to capsicum permission-denied signals" 2021-07-10 20:26:01 +01:00
riscv Revert "Pass the syscall number to capsicum permission-denied signals" 2021-07-10 20:26:01 +01:00
rpc Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
security mac: cheaper check for ifnet_create_mbuf and ifnet_check_transmit 2021-06-29 15:06:45 +02:00
sys cache: add cache_enter_time_flags 2021-07-12 07:03:14 +02:00
teken
tests tests: Revise FIB lookups per second benchmarking routines 2021-06-17 08:49:09 +02:00
tools makesyscalls.lua: improve generated file style(9) compliance 2021-05-13 13:59:25 -04:00
ufs ffs_softdep: force sync if journal is low in journal_check_space 2021-06-23 23:47:05 +03:00
vm uma: Fix a few problems with KASAN integration 2021-07-09 20:38:50 -04:00
x86 x86: Mark the trapframe as initialized in ipi_bitmap_handler() 2021-07-09 20:38:50 -04:00
xdr
xen x86/xen: remove PVHv1 code 2021-05-17 11:41:21 +02:00
Makefile