lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 081/236] libbpf: Fix the possible memory leak on error
    Date
    From: Shuyi Cheng <chengshuyi@linux.alibaba.com>

    [ Upstream commit 18353c87e0e0440d4c7c746ed740738bbc1b538e ]

    If the strdup() fails then we need to call bpf_object__close(obj) to
    avoid a resource leak.

    Fixes: 166750bc1dd2 ("libbpf: Support libbpf-provided extern variables")
    Signed-off-by: Shuyi Cheng <chengshuyi@linux.alibaba.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/1626180159-112996-3-git-send-email-chengshuyi@linux.alibaba.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/lib/bpf/libbpf.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
    index 95eef7ebdac5..04cde732d686 100644
    --- a/tools/lib/bpf/libbpf.c
    +++ b/tools/lib/bpf/libbpf.c
    @@ -6907,8 +6907,10 @@ __bpf_object__open(const char *path, const void *obj_buf, size_t obj_buf_sz,
    kconfig = OPTS_GET(opts, kconfig, NULL);
    if (kconfig) {
    obj->kconfig = strdup(kconfig);
    - if (!obj->kconfig)
    - return ERR_PTR(-ENOMEM);
    + if (!obj->kconfig) {
    + err = -ENOMEM;
    + goto out;
    + }
    }

    err = bpf_object__elf_init(obj);
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-13 15:37    [W:2.596 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site