• Yonghong Song's avatar
    bpf: Fix an unitialized value in bpf_iter · 17d8beda
    Yonghong Song authored
    Commit 15d83c4d ("bpf: Allow loading of a bpf_iter program")
    cached btf_id in struct bpf_iter_target_info so later on
    if it can be checked cheaply compared to checking registered names.
    
    syzbot found a bug that uninitialized value may occur to
    bpf_iter_target_info->btf_id. This is because we allocated
    bpf_iter_target_info structure with kmalloc and never initialized
    field btf_id afterwards. This uninitialized btf_id is typically
    compared to a u32 bpf program func proto btf_id, and the chance
    of being equal is extremely slim.
    
    This patch fixed the issue by using kzalloc which will also
    prevent future likely instances due to adding new fields.
    
    Fixes: 15d83c4d ("bpf: Allow loading of a bpf_iter program")
    Reported-by: syzbot+580f4f2a272e452d55cb@syzkaller.appspotmail.com
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20210212005926.2875002-1-yhs@fb.com
    17d8beda
bpf_iter.c 15 KB