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 5432FA04DC; Tue, 20 Oct 2020 16:09:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 54FE8ACCF; Tue, 20 Oct 2020 16:07:20 +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 946B8AC6F for ; Tue, 20 Oct 2020 16:07:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1603202835; 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=XBr3HY5TeLbiwTH9a0HT3CjwohKBxSDR95Xk7ZOxLf1+S+GWldO3L1M2EwpCnUmjxckyue u0PJkDxgV+QCfzvxpz8KJcsuYBPjjtGGPMI0qMNwOGQH4tJ+V0TYHfyaJAcEKMWDpSRpnO YDLEhEoygTTwRfMpxfzXzuxyP6GdhHU= Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-563-9umgkykBOqyp0KPqac18tw-1; Tue, 20 Oct 2020 10:07:13 -0400 X-MC-Unique: 9umgkykBOqyp0KPqac18tw-1 Received: by mail-vs1-f72.google.com with SMTP id r10so689970vsq.7 for ; Tue, 20 Oct 2020 07:07:12 -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=YiBkOeELa/WsBbRwAnsZf0baQ9K0OsQni9cmSAf06EXaEa4MyREs0I4uJgBrmqNA// 9Ivy7fLBnU9B0e5eYxaFL3lVSNPEn475igPR20DxeoWBxd1WeqzHAfKf7Xag3ph+u5zc sLaMahejn7qP2KogXtWY9cxe+PfdkcyCIYy46AKl5UYq+6/YfC1ZI6AwH3fvk3nfWuBW P0+w9Al2/JWOF6pV/yn9YFYTU41pxucVJn9XeLVsXbmExLB3m8yg6SbUl0lBrza+AjWk rpMV2SoHOKv5+ofbybcXDhzdWF8PvvqpWuK29LRYizw7+3MbykEnEcP57GqDYZsiw9A6 QeKg== X-Gm-Message-State: AOAM5301bManfnHKa8RNqoaep+NPlzzQmfq0RUiPVA7glB2FDaLYYZmF dcgOmNoo9X+WKRwD43PnCHjFIM1TiiD+D9K8QpyvKdSSFBkbaYi+xmQ/TqzWEPe2k7UPz3f+OQN ipzoPNaauQ7Yqlr/63sA= X-Received: by 2002:ab0:4983:: with SMTP id e3mr1438924uad.41.1603202832356; Tue, 20 Oct 2020 07:07:12 -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-dev] [PATCH] eal: fix memory leak in uevent parse and process X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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