From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 184A4C43381 for ; Fri, 8 Mar 2019 05:18:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CCCC320854 for ; Fri, 8 Mar 2019 05:18:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=tehnerd-com.20150623.gappssmtp.com header.i=@tehnerd-com.20150623.gappssmtp.com header.b="AURNwjZS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726320AbfCHFSf (ORCPT ); Fri, 8 Mar 2019 00:18:35 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:37526 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725372AbfCHFSf (ORCPT ); Fri, 8 Mar 2019 00:18:35 -0500 Received: by mail-pg1-f193.google.com with SMTP id q206so13173478pgq.4 for ; Thu, 07 Mar 2019 21:18:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tehnerd-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=q+RABj+Tdu8m7uBj5lvYA67WAAJ9FvXU8ztAWX/Z7k8=; b=AURNwjZS7jRc38fIFqP4vHwDvnLny/fTES36NUsRHEhItZSlijdWFZ1Z64WH6f+ZOs 2nGcAXv2E34U3gtAqmy49RBj6VTXhwcYtFxVkl02UUe95DHTbclj902nxN6FlxwAP2tl /Ontgh4esG1gcSQl/XR1H9GPhc7jOUIPons05sFJhDYqEz9zcQIQO3CEA2y2/jIrvXg5 mjNca0FIphhIDZ0/gAlmO1WLWK4iU/0R0/14qXrB82W2DfPcrWkpMFYQMlQjZCvn1t9E uyoxkl8Y7m3CF0p6MGjXj505ZrpOhNDh9tfu/kv+Xy6v4u55x656opq6X14w4b1JWY+N 3OfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=q+RABj+Tdu8m7uBj5lvYA67WAAJ9FvXU8ztAWX/Z7k8=; b=RdFJl01STCq7iB4CWs9Y+Fe5FK5Xuy+JleQ+c+BoVKp6DDUImWz6gMBhqMuA/MhyZS g5GxtE4DSnZSjVlHwOlEceq51ptZ5EPISEzPIaVNiB7GV0qY08FoB6fzcbRrNUJmGdoo J7zFwhovcu0MicxPYMZHyPF4IK4KH3r0kuWpeTRLo5lsaeno9jpCzNfmjpwVyChM2bbv ptv7nP1JqA15P3igLZcB9dpOKEpM/rgGblFXojCzsp6rC44cH83nrUrBCfRXzbItN+Mm 1YJB6jmBo78tilTzKYuLKBe9Na28GnRN7lwDtQ/GAulLntcuM7cbpNE765zjz5EXNRQm 55QA== X-Gm-Message-State: APjAAAUr3QwD/EQYh+pYEyUNcuwDCz5KeHni5czxodZOizuFtOvAQW0a LYgcE4kxDMHt8Lm2IEXJX6zsU7X3bny6tw== X-Google-Smtp-Source: APXvYqyM7/Ip+LH2wkwb4uSkEaxhjtngHkkM0IHVefVSm0iiqlFzuI5iLpRgDGlvTpdOiFtjjpsVWA== X-Received: by 2002:a62:be0b:: with SMTP id l11mr16987795pff.52.1552022314140; Thu, 07 Mar 2019 21:18:34 -0800 (PST) Received: from localhost.localdomain ([2601:647:4203:d720::1]) by smtp.gmail.com with ESMTPSA id m67sm9911634pfj.70.2019.03.07.21.18.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Mar 2019 21:18:33 -0800 (PST) From: "Nikita V. Shirokov" To: Alexei Starovoitov , Daniel Borkmann , Yonghong Song Cc: netdev@vger.kernel.org, "Nikita V . Shirokov" Subject: [PATCH v3 bpf]: libbpf: fixing leak when kernel does not support btf Date: Fri, 8 Mar 2019 05:18:14 +0000 Message-Id: <20190308051814.19218-1-tehnerd@tehnerd.com> X-Mailer: git-send-email 2.17.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org we could end up in situation when we have object file w/ all btf info but kernel does not support btf yet. in this situation currently libbpf just set obj->btf to NULL w/o freeing it first. this patch if fixing it by making sure to run btf__free first v2->v3: - adding "Fixes" tag v1->v2: - adding netdev to cc Fixes: 8a138aed4a80 ("bpf: btf: Add BTF support to libbpf") Signed-off-by: Nikita V. Shirokov --- tools/lib/bpf/libbpf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index f5eb60379c8d..d5b830d60601 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -838,6 +838,8 @@ static int bpf_object__elf_collect(struct bpf_object *obj, int flags) if (IS_ERR(obj->btf) || btf__load(obj->btf)) { pr_warning("Error loading ELF section %s: %ld. Ignored and continue.\n", BTF_ELF_SEC, PTR_ERR(obj->btf)); + if (!IS_ERR(obj->btf)) + btf__free(obj->btf); obj->btf = NULL; } } else if (strcmp(name, BTF_EXT_ELF_SEC) == 0) { -- 2.17.1