From patchwork Sun Sep 16 05:20:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 970302 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42CczF4vG1z9sB5 for ; Sun, 16 Sep 2018 15:20:41 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 3DFF6C21C8B; Sun, 16 Sep 2018 05:20:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B7F62C21D65; Sun, 16 Sep 2018 05:20:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2662EC22099; Sun, 16 Sep 2018 05:20:27 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by lists.denx.de (Postfix) with ESMTPS id E7032C22060 for ; Sun, 16 Sep 2018 05:20:26 +0000 (UTC) Received: from LT02.fritz.box ([84.119.34.59]) by mail.gmx.com (mrgmx102 [212.227.17.174]) with ESMTPSA (Nemesis) id 0MJFBe-1fzkmp3X6g-002lLb; Sun, 16 Sep 2018 07:20:25 +0200 From: Heinrich Schuchardt To: Alexander Graf Date: Sun, 16 Sep 2018 07:20:21 +0200 Message-Id: <20180916052021.5794-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.18.0 X-Provags-ID: V03:K1:FmFkssqZOd2A6HmE9JvpvItX2s7NPgRa2vzp4ySovlcPXxnO4m1 /kqCa7cLANKu71KhCfsvx5HbuwePa/m72uEdlAG+E6+JVFtfW3NSIdIwqIIyxAvkudf16Ra e0+Jx7QrTT3oDEhcNF8GxhHmTh8ThC+VZKRyQTczFFsbXgvqocfxA4xE7tjKIspSVYY+Ozd LfnoQDE0tawfCMO/8BUYQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:kzuMdM7T8uQ=:jegp8UgKgz45vXmEsFR0Fg SToU0psb8phYXIXHRzzMaWc2kvOPuLyWle3QqrrBx3pYckpINNu7L2WVDymaj0/pRU1UFw6+a y+5lLqcVH54CRjew5bLtbytkjeDwZ0DcBPD/xP1PO5u7k1oYEDtxp2xyErvcMdkfzNCcWel58 e/ho+s7E9yCw4fCzEoKN30TO+l9ekR2s80/PTqjzpoRzQqF4DZucbZbh8/73KWB4+d4KXjENm Cf1MEnaa6Gn1a9ww1nBZBrcErPTot1YWqcQPz58aAycaBDAghnmJKSaZZH7TV/N5Lgosoosxz DW4EWrzz33eC9OspViDWLHcPjk4NixSKB4tonKj7hlWcHHICflFbP+KIFV8nJdfo/BlVHSsCX abx7VzGzjrfMVzffjtpivLjZMbFpJtWmLzH8MZZeQwmsOMqR27nfq6jZn3ZZFQmp8g9YTRHco mRep8VNy5r+tlC5UYL/HGJ3LvGHLxeKgSorAxeP3q//VNav4YUQFhA6n46bZmXcHVHvc1Ammh QMYafLmO8NGU4d5KjmeH/B/vEJNcgeNRaC3EFeGQfi+g4Pymg2iGwvjcQp9OGmyfY59YPeRFR eZweDeUzNJKVJA96Q3xvgmR4ByIvBp4/O6cOTakBn0GPPm9ezMgGjvPQ7NGc4exMIIfsfANvj vvZEWlnZfuUL4ZMWscXfmpsOPNTg5bdexgLXxANeSSkeZK1sEkyBXY2O36DdFt6iJcJErPpvR eWvCBJOelw9TCQRC/1Fxm23LbBCB12QS6OjhavtCJxwfSVDHJXIGNxf8k+t/DDCSaYk7LxW7Q iIT87iU//SNAH1xrPJi2eL0JzOxBw== Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] efi_loader: memory leak in efi_set_bootdev() X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" efi_set_bootdev() may be called repeatedly. Free the memory allocated for device paths in previous calls. Signed-off-by: Heinrich Schuchardt --- cmd/bootefi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 791db359f5..a890f414e8 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -630,6 +630,13 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path) char filename[32] = { 0 }; /* dp->str is u16[32] long */ char *s; + /* efi_set_bootdev is typically called repeatedly, recover memory */ + efi_free_pool(bootefi_device_path); + efi_free_pool(bootefi_image_path); + /* If blk_get_device_part_str fails, avoid duplicate free. */ + bootefi_device_path = NULL; + bootefi_image_path = NULL; + if (strcmp(dev, "Net")) { struct blk_desc *desc; disk_partition_t fs_partition;