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=-13.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 DD132C43461 for ; Tue, 15 Sep 2020 12:08:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A15EF2074B for ; Tue, 15 Sep 2020 12:08:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600171728; bh=4AuBx4JHqQo3nAGsX8TsJEelIrU1veR457qm0hKhDJw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=NZ5atrB/LtkIMCY74Rj5ohKCEEG5OWXUaJ+1eYSjL9aTI2mEq4l1taJ3ZjRnM4vXX /gREG0XIVlYcrqrBN4o7YmTY9+57MUjeSb4v4yQa1CdSFuvzfUA+MckMu/epbleGtp /OoZA9+SvV+Dv6VDtW3Jk+CgmQw9NYP7af0CDLS4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726267AbgIOMIo (ORCPT ); Tue, 15 Sep 2020 08:08:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:35166 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726290AbgIOL7T (ORCPT ); Tue, 15 Sep 2020 07:59:19 -0400 Received: from quaco.ghostprotocols.net (unknown [179.97.37.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D808721D43; Tue, 15 Sep 2020 11:58:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600171111; bh=4AuBx4JHqQo3nAGsX8TsJEelIrU1veR457qm0hKhDJw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=B5e7DoJjgpaHM5PtVykcXxtaCm66MkFlDUky/BUaZzr+JhjQBA2QzDzzuGqbpfXP4 cPVddQb/zptnMTvKCQyMAVm3agS4wtXWxjEn2Hu5nczmkFlaMpBu+Wo2EISSEIbA03 iMQh6gZCnY+DpAVGo8KB5TPNUxuDwt3ZVEtPZ6Qs= Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 0B96D40D3D; Tue, 15 Sep 2020 08:58:29 -0300 (-03) Date: Tue, 15 Sep 2020 08:58:28 -0300 From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Jiri Olsa , Ingo Molnar , Peter Zijlstra , Mark Rutland , Alexander Shishkin , Stephane Eranian , LKML , Andi Kleen , Ian Rogers , Kajol Jain , John Garry Subject: Re: [PATCH 01/11] perf metric: Fix some memory leaks Message-ID: <20200915115828.GC720847@kernel.org> References: <20200915031819.386559-1-namhyung@kernel.org> <20200915031819.386559-2-namhyung@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200915031819.386559-2-namhyung@kernel.org> X-Url: http://acmel.wordpress.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Sep 15, 2020 at 12:18:09PM +0900, Namhyung Kim escreveu: > I found some memory leaks while reading the metric code. Some are > real and others only occur in the error path. When it failed during > metric or event parsing, it should release all resources properly. Thanks, applied. - Arnaldo > Cc: Kajol Jain > Cc: John Garry > Cc: Ian Rogers > Acked-by: Jiri Olsa > Fixes: b18f3e365019d ("perf stat: Support JSON metrics in perf stat") > Signed-off-by: Namhyung Kim > --- > tools/perf/util/metricgroup.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c > index d03bac65a3c2..90d14c63babb 100644 > --- a/tools/perf/util/metricgroup.c > +++ b/tools/perf/util/metricgroup.c > @@ -529,6 +529,9 @@ void metricgroup__print(bool metrics, bool metricgroups, char *filter, > continue; > strlist__add(me->metrics, s); > } > + > + if (!raw) > + free(s); > } > free(omg); > } > @@ -1041,7 +1044,7 @@ static int parse_groups(struct evlist *perf_evlist, const char *str, > ret = metricgroup__add_metric_list(str, metric_no_group, > &extra_events, &metric_list, map); > if (ret) > - return ret; > + goto out; > pr_debug("adding %s\n", extra_events.buf); > bzero(&parse_error, sizeof(parse_error)); > ret = __parse_events(perf_evlist, extra_events.buf, &parse_error, fake_pmu); > @@ -1049,11 +1052,11 @@ static int parse_groups(struct evlist *perf_evlist, const char *str, > parse_events_print_error(&parse_error, extra_events.buf); > goto out; > } > - strbuf_release(&extra_events); > ret = metricgroup__setup_events(&metric_list, metric_no_merge, > perf_evlist, metric_events); > out: > metricgroup__free_metrics(&metric_list); > + strbuf_release(&extra_events); > return ret; > } > > -- > 2.28.0.618.gf4bc123cb7-goog > -- - Arnaldo