]> git.itanic.dy.fi Git - linux-stable/commit
treewide: use get_random_u32_inclusive() when possible
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 10 Oct 2022 02:44:02 +0000 (20:44 -0600)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 18 Nov 2022 01:18:02 +0000 (02:18 +0100)
commite8a533cbeb79809206f8724e89961e0079508c3c
treeb81da4151f67029174482ab2fdbee7dc8c98c931
parentd247aabd391c3b2fa4f26874ed9136a7a142fcfd
treewide: use get_random_u32_inclusive() when possible

These cases were done with this Coccinelle:

@@
expression H;
expression L;
@@
- (get_random_u32_below(H) + L)
+ get_random_u32_inclusive(L, H + L - 1)

@@
expression H;
expression L;
expression E;
@@
  get_random_u32_inclusive(L,
  H
- + E
- - E
  )

@@
expression H;
expression L;
expression E;
@@
  get_random_u32_inclusive(L,
  H
- - E
- + E
  )

@@
expression H;
expression L;
expression E;
expression F;
@@
  get_random_u32_inclusive(L,
  H
- - E
  + F
- + E
  )

@@
expression H;
expression L;
expression E;
expression F;
@@
  get_random_u32_inclusive(L,
  H
- + E
  + F
- - E
  )

And then subsequently cleaned up by hand, with several automatic cases
rejected if it didn't make sense contextually.

Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> # for infiniband
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
24 files changed:
arch/x86/kernel/module.c
crypto/rsa-pkcs1pad.c
crypto/testmgr.c
drivers/bus/mhi/host/internal.h
drivers/dma-buf/st-dma-fence-chain.c
drivers/infiniband/core/cma.c
drivers/infiniband/hw/hns/hns_roce_ah.c
drivers/mtd/nand/raw/nandsim.c
drivers/net/wireguard/selftest/allowedips.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
fs/f2fs/segment.c
kernel/kcsan/selftest.c
lib/test_hexdump.c
lib/test_printf.c
lib/test_vmalloc.c
mm/kasan/kasan_test.c
mm/kfence/kfence_test.c
mm/swapfile.c
net/bluetooth/mgmt.c
net/core/pktgen.c
net/ipv4/tcp_input.c
net/ipv6/addrconf.c
net/xfrm/xfrm_state.c