lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0546/1039] libbpf: Detect corrupted ELF symbols section
    Date
    From: Andrii Nakryiko <andrii@kernel.org>

    [ Upstream commit 833907876be55205d0ec153dcd819c014404ee16 ]

    Prevent divide-by-zero if ELF is corrupted and has zero sh_entsize.
    Reported by oss-fuzz project.

    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/bpf/20211103173213.1376990-2-andrii@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/lib/bpf/libbpf.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
    index 2696f0b7f0acc..1cc0383471f01 100644
    --- a/tools/lib/bpf/libbpf.c
    +++ b/tools/lib/bpf/libbpf.c
    @@ -3556,7 +3556,7 @@ static int bpf_object__collect_externs(struct bpf_object *obj)

    scn = elf_sec_by_idx(obj, obj->efile.symbols_shndx);
    sh = elf_sec_hdr(obj, scn);
    - if (!sh)
    + if (!sh || sh->sh_entsize != sizeof(Elf64_Sym))
    return -LIBBPF_ERRNO__FORMAT;

    dummy_var_btf_id = add_dummy_ksym_var(obj->btf);
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 23:04    [W:2.393 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site