Hi, On 8/8/2022 11:27 PM, Yonghong Song wrote: > > > On 8/6/22 12:40 AM, Hou Tao wrote: >> From: Hou Tao <houtao1@xxxxxxxxxx> >> >> Add test to validate the overwrite of sock storage map value in map >> iterator and another one to ensure out-of-bound value writing is >> rejected. >> >> Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> > > One nit below. > > Acked-by: Yonghong Song <yhs@xxxxxx> > >> --- >> .../selftests/bpf/prog_tests/bpf_iter.c | 20 +++++++++++++++++-- >> .../bpf/progs/bpf_iter_bpf_sk_storage_map.c | 20 ++++++++++++++++++- >> 2 files changed, 37 insertions(+), 3 deletions(-) >> SNIP >> SEC("iter/bpf_sk_storage_map") >> -int dump_bpf_sk_storage_map(struct bpf_iter__bpf_sk_storage_map *ctx) >> +int rw_bpf_sk_storage_map(struct bpf_iter__bpf_sk_storage_map *ctx) >> { >> struct sock *sk = ctx->sk; >> __u32 *val = ctx->value; >> @@ -30,5 +31,22 @@ int dump_bpf_sk_storage_map(struct >> bpf_iter__bpf_sk_storage_map *ctx) >> ipv6_sk_count++; >> val_sum += *val; >> + >> + *val += to_add_val; >> + >> + return 0; >> +} >> + >> +SEC("iter/bpf_sk_storage_map") >> +int oob_write_bpf_sk_storage_map(struct bpf_iter__bpf_sk_storage_map *ctx) >> +{ >> + struct sock *sk = ctx->sk; >> + __u32 *val = ctx->value; >> + >> + if (sk == (void *)0 || val == (void *)0) > > Newer bpf_helpers.h provides NULL for (void *)0, you can use NULL now. Thanks. Will fix in v2. > >> + return 0; >> + >> + *(val + 1) = 0xdeadbeef; >> + >> return 0; >> }