• Daniel Borkmann's avatar
    bpf, test, cgroup: Use sk_{alloc,free} for test cases · 435b08ec
    Daniel Borkmann authored
    BPF test infra has some hacks in place which kzalloc() a socket and perform
    minimum init via sock_net_set() and sock_init_data(). As a result, the sk's
    skcd->cgroup is NULL since it didn't go through proper initialization as it
    would have been the case from sk_alloc(). Rather than re-adding a NULL test
    in sock_cgroup_ptr() just for this, use sk_{alloc,free}() pair for the test
    socket. The latter also allows to get rid of the bpf_sk_storage_free() special
    case.
    
    Fixes: 8520e224 ("bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode")
    Fixes: b7a1848e ("bpf: add BPF_PROG_TEST_RUN support for flow dissector")
    Fixes: 2cb494a3 ("bpf: add tests for direct packet access from CGROUP_SKB")
    Reported-by: syzbot+664b58e9a40fbb2cec71@syzkaller.appspotmail.com
    Reported-by: syzbot+33f36d0754d4c5c0e102@syzkaller.appspotmail.com
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Tested-by: syzbot+664b58e9a40fbb2cec71@syzkaller.appspotmail.com
    Tested-by: syzbot+33f36d0754d4c5c0e102@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/bpf/20210927123921.21535-2-daniel@iogearbox.net
    435b08ec
test_run.c 24.6 KB