From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A09F2A04DC for ; Tue, 20 Oct 2020 16:07:40 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 16AA9ACB9; Tue, 20 Oct 2020 16:07:36 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by dpdk.org (Postfix) with ESMTP id 21081ACB9 for ; Tue, 20 Oct 2020 16:07:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1603202852; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8+xhPa2Mrm3o+b1eQscjUDROV4gyKHjrRulfNluuQps=; b=bTwS/w/DX+zGl3gR9qZDL1LZR46GSC++wDzsw1MBgYQ57ojAgl/nKM8ZOx6Xg4uD2/xAtT 47O+Ox+U8ysU92IzD6BFlT+g5IaOEUgTzKTxHW8FBt5EpOdvLdkgEVRxXIubAHNrfZhkIS Uev4zgwt355DbvrtxOpLGP9F4C07xgI= Received: from mail-ua1-f72.google.com (mail-ua1-f72.google.com [209.85.222.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-571-FxGY8lifNje8-z6YZK1wZw-1; Tue, 20 Oct 2020 10:07:30 -0400 X-MC-Unique: FxGY8lifNje8-z6YZK1wZw-1 Received: by mail-ua1-f72.google.com with SMTP id 72so339663uaf.22 for ; Tue, 20 Oct 2020 07:07:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8+xhPa2Mrm3o+b1eQscjUDROV4gyKHjrRulfNluuQps=; b=FnyK60bHySwwPGRdn2qF9zIr4r/vam6vcp1xN/DEJDObbnyGa5UUsHyve6H3CEIcwq 4/d7lYU3uSSFgBXlUpI34hlVq5GuhzsaNNs6mGnbiPvDxHnU1DEK8SgUuNk0GbofMMKO qyqK23zHr+bPXAuKq0DBPnBaIpBv3nyprQvy8ULHUsG1lj8BkSArGRYiFtisez+VAnZH KqyAmRG0LArUnhtgu7qZycFi/D9RoQC2XtDr5AhKSoEvWyBzkl0GmvMSdkBJDNRBcTOW m3cIzjo6BFI3zj6UzYH5DUnOn8LuKuo3SUMfv/8HFU9g2CBnsBuazdC62b5KenNwDT8n UKIQ== X-Gm-Message-State: AOAM531Wv/HbaVBg6bBhvcb7Ywy6CFVslyB6pB3bmso1NoIFymJ7zZlM 1t992ox4lJagNCht1qbwnKugPE7Ui0PDPoJD8wpKAxdGeX8rBPRUB7Ri3ToEdsRD4kjtVmg7/6S JAGDsf/yWBeFqrSBA1c5IgFI= X-Received: by 2002:ab0:4983:: with SMTP id e3mr1440666uad.41.1603202850375; Tue, 20 Oct 2020 07:07:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZrVfxy+G7fIWbh/UR4nrwgx+TxYGTL6h5IxDqgULZGNLh2lMMQoSAsvcrHVgFukiKhnXhXovIQ1N2kRjnrdE= X-Received: by 2002:ab0:4983:: with SMTP id e3mr1438879uad.41.1603202831964; Tue, 20 Oct 2020 07:07:11 -0700 (PDT) MIME-Version: 1.0 References: <1590231141-30684-1-git-send-email-wangyunjian@huawei.com> In-Reply-To: <1590231141-30684-1-git-send-email-wangyunjian@huawei.com> From: David Marchand Date: Tue, 20 Oct 2020 16:07:00 +0200 Message-ID: To: wangyunjian Cc: dev , "Lilijun (Jerry)" , xudingke , dpdk stable Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] eal: fix memory leak in uevent parse and process X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" On Sat, May 23, 2020 at 12:52 PM wangyunjian wrote: > > From: Yunjian Wang > > When the memory for uevent.devname is allocated in dev_uev_parse(). It > is not freed when parse the subsystem layer fails in dev_uev_parse(). > And Before return, it is also not freed in dev_uev_handler(). These > cause a memory leak. > > Fixes: 0d0f478d0483 ("eal/linux: add uevent parse and process") > Cc: stable@dpdk.org > > Signed-off-by: Yunjian Wang > --- > lib/librte_eal/linux/eal_dev.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_eal/linux/eal_dev.c b/lib/librte_eal/linux/eal_dev.c > index 83c9cd660..3a2bf8514 100644 > --- a/lib/librte_eal/linux/eal_dev.c > +++ b/lib/librte_eal/linux/eal_dev.c > @@ -189,7 +189,7 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length) > else if (!strncmp(subsystem, "vfio", 4)) > event->subsystem = EAL_DEV_EVENT_SUBSYSTEM_VFIO; > else > - return -1; > + goto out; Changed label as err. > > /* parse the action type */ > if (!strncmp(action, "add", 3)) > @@ -197,8 +197,12 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length) > else if (!strncmp(action, "remove", 6)) > event->type = RTE_DEV_EVENT_REMOVE; > else > - return -1; > + goto out; > return 0; > +out: > + if (event->devname) No need for this check. Removed while applying. > + free(event->devname); > + return -1; > } > > static void > @@ -277,12 +281,14 @@ dev_uev_handler(__rte_unused void *param) > rte_spinlock_unlock(&failure_handle_lock); > } > rte_dev_event_callback_process(uevent.devname, uevent.type); > + free(uevent.devname); > } > > return; > > failure_handle_err: > rte_spinlock_unlock(&failure_handle_lock); > + free(uevent.devname); > } > > int > -- > 2.23.0 Reviewed-by: David Marchand Applied, thanks. -- David Marchand