mbox series

[bpf,v4,0/5] Fixes for bits iterator

Message ID 20241030100516.3633640-1-houtao@huaweicloud.com (mailing list archive)
Headers show
Series Fixes for bits iterator | expand

Message

Hou Tao Oct. 30, 2024, 10:05 a.m. UTC
From: Hou Tao <houtao1@huawei.com>

Hi,

The patch set fixes several issues in bits iterator. Patch #1 fixes the
kmemleak problem of bits iterator. Patch #2~#3 fix the overflow problem
of nr_bits. Patch #4 fixes the potential stack corruption when bits
iterator is used on 32-bit host. Patch #5 adds more test cases for bits
iterator.

Please see the individual patches for more details. And comments are
always welcome.

---
v4:
 * patch #1: add ack from Yafang
 * patch #3: revert code-churn like changes:
   (1) compute nr_bytes and nr_bits before the check of nr_words.
   (2) use nr_bits == 64 to check for single u64, preventing build
       warning on 32-bit hosts.
 * patch #4: use "BITS_PER_LONG == 32" instead of "!defined(CONFIG_64BIT)"

v3: https://lore.kernel.org/bpf/20241025013233.804027-1-houtao@huaweicloud.com/T/#t
  * split the bits-iterator related patches from "Misc fixes for bpf"
    patch set
  * patch #1: use "!nr_bits || bits >= nr_bits" to stop the iteration
  * patch #2: add a new helper for the overflow problem
  * patch #3: decrease the limitation from 512 to 511 and check whether
    nr_bytes is too large for bpf memory allocator explicitly
  * patch #5: add two more test cases for bit iterator

v2: http://lore.kernel.org/bpf/d49fa2f4-f743-c763-7579-c3cab4dd88cb@huaweicloud.com

Hou Tao (5):
  bpf: Free dynamically allocated bits in bpf_iter_bits_destroy()
  bpf: Add bpf_mem_alloc_check_size() helper
  bpf: Check the validity of nr_words in bpf_iter_bits_new()
  bpf: Use __u64 to save the bits in bits iterator
  selftests/bpf: Add three test cases for bits_iter

 include/linux/bpf_mem_alloc.h                 |  3 +
 kernel/bpf/helpers.c                          | 54 +++++++++++++---
 kernel/bpf/memalloc.c                         | 14 ++++-
 .../selftests/bpf/progs/verifier_bits_iter.c  | 61 ++++++++++++++++++-
 4 files changed, 118 insertions(+), 14 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Oct. 30, 2024, 7:20 p.m. UTC | #1
Hello:

This series was applied to bpf/bpf.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Wed, 30 Oct 2024 18:05:11 +0800 you wrote:
> From: Hou Tao <houtao1@huawei.com>
> 
> Hi,
> 
> The patch set fixes several issues in bits iterator. Patch #1 fixes the
> kmemleak problem of bits iterator. Patch #2~#3 fix the overflow problem
> of nr_bits. Patch #4 fixes the potential stack corruption when bits
> iterator is used on 32-bit host. Patch #5 adds more test cases for bits
> iterator.
> 
> [...]

Here is the summary with links:
  - [bpf,v4,1/5] bpf: Free dynamically allocated bits in bpf_iter_bits_destroy()
    https://git.kernel.org/bpf/bpf/c/101ccfbabf47
  - [bpf,v4,2/5] bpf: Add bpf_mem_alloc_check_size() helper
    https://git.kernel.org/bpf/bpf/c/62a898b07b83
  - [bpf,v4,3/5] bpf: Check the validity of nr_words in bpf_iter_bits_new()
    https://git.kernel.org/bpf/bpf/c/393397fbdcad
  - [bpf,v4,4/5] bpf: Use __u64 to save the bits in bits iterator
    https://git.kernel.org/bpf/bpf/c/e13393836750
  - [bpf,v4,5/5] selftests/bpf: Add three test cases for bits_iter
    https://git.kernel.org/bpf/bpf/c/ebafc1e535db

You are awesome, thank you!