From nobody Sat Feb 7 17:19:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 953C6C7EE29 for ; Wed, 7 Jun 2023 05:02:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234201AbjFGFCJ (ORCPT ); Wed, 7 Jun 2023 01:02:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56400 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234481AbjFGFCC (ORCPT ); Wed, 7 Jun 2023 01:02:02 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E815E7E for ; Tue, 6 Jun 2023 22:02:01 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-babb76a9831so10305151276.2 for ; Tue, 06 Jun 2023 22:02:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686114120; x=1688706120; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=mRAyICdxSGyrBKbLP2q4JA92wKF4IQsTca6ujv0oJ70=; b=SHF6+czYmJSPg6CZsTHIGpB42/zXg7RQ6fEyMR23JmXNKA+j4cxDeul7zicrPLVN/H i2vHXmUndfahQN11iLH6nXBf1jh9zmTG//HYu3RrNYt32jQxLZywPxVux8KXrcC6ciTf oWY3N5KP4h5DEF9Hn0fGWBdkgpaSPHbF1hIkbb1BGgIZLIkGFNHGs1TW3bV82U9e1mOE +55e7vyctEknl0nWgCsPTyRguZ1I7OH/yLB7DUVKDkoiJE27UBOMqZWRjDg/Wx7sdKQN AfA7DelBpgGUriA0BUDNTTgOHElZoZrXx4NVv0iswaSUkKTu9PxD8/zX9UPiS3Nn0EhC OJ3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686114120; x=1688706120; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mRAyICdxSGyrBKbLP2q4JA92wKF4IQsTca6ujv0oJ70=; b=Pc2QXN+LFYslTHE9JJ+KyqriPHFEJaLI8QZ+uQxMVwuaC2/UmFTQ8SQfBxIUJOxFSw 9Rl9yhc9ovnApRHuMlTRkiTCYJtx0uvnh/75wjEJDPN+hYFf7I9AIP2xCzuHvwnczt6C IVjOwb2eUw+OII8fH+GMjYoPhaaZiKHh4OV/9dcorosxQ4HTjnhwMokLmWhY6L4+L2ow 3RIUwXCqRtIAO18okLE4QtTpmPM3et4ZG80iCmAV61M0qYiBhduezOjy6JQHnWMteQPm lQ+qJ5Doeu9UO+ipBpecg67zVXnrFRe3M8MrbXz/EUfIXiOrgVF8gMGJEvK/r7gUOqvz xkSg== X-Gm-Message-State: AC+VfDzmzvYcSnHsxEhhuBGt/oFQhBNdJezYqQN2ugUjuUu/dwoUSBg4 c4bSIK5L0E1UJrzz8YjrYDEGcS0uzPxl X-Google-Smtp-Source: ACHHUZ7swUdFlK8MwbVV27uiqLr02j263EZVgmxsJeTDgCt7riuy9Ee8MBI/tBz8zvJMekA2PK7yM+17+T8g X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:3c35:209f:5d38:b7a1]) (user=irogers job=sendgmr) by 2002:a25:d15:0:b0:bac:7086:c9b2 with SMTP id 21-20020a250d15000000b00bac7086c9b2mr1521872ybn.12.1686114120259; Tue, 06 Jun 2023 22:02:00 -0700 (PDT) Date: Tue, 6 Jun 2023 22:01:46 -0700 In-Reply-To: <20230607050148.3248353-1-irogers@google.com> Message-Id: <20230607050148.3248353-2-irogers@google.com> Mime-Version: 1.0 References: <20230607050148.3248353-1-irogers@google.com> X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog Subject: [PATCH v1 1/2] perf annotate: Fix parse_objdump_line memory leak From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Andres Freund , Huacai Chen , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" fileloc is used to hold a previous line, before overwriting it ensure the previous contents is freed. Free the storage once done in symbol__disassemble. Signed-off-by: Ian Rogers --- tools/perf/util/annotate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index b708bbc49c9e..fc5f44535ebe 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -1524,6 +1524,7 @@ static int symbol__parse_objdump_line(struct symbol *= sym, /* /filename:linenr ? Save line number and ignore. */ if (regexec(&file_lineno, parsed_line, 2, match, 0) =3D=3D 0) { *line_nr =3D atoi(parsed_line + match[1].rm_so); + free(*fileloc); *fileloc =3D strdup(parsed_line); return 0; } @@ -1572,7 +1573,6 @@ static int symbol__parse_objdump_line(struct symbol *= sym, } =20 annotation_line__add(&dl->al, ¬es->src->source); - return 0; } =20 @@ -2114,6 +2114,7 @@ static int symbol__disassemble(struct symbol *sym, st= ruct annotate_args *args) nline++; } free(line); + free(fileloc); =20 err =3D finish_command(&objdump_process); if (err) --=20 2.41.0.rc0.172.g3f132b7071-goog From nobody Sat Feb 7 17:19:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3750C7EE25 for ; Wed, 7 Jun 2023 05:02:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234757AbjFGFCP (ORCPT ); Wed, 7 Jun 2023 01:02:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234611AbjFGFCE (ORCPT ); Wed, 7 Jun 2023 01:02:04 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AECEAA for ; Tue, 6 Jun 2023 22:02:03 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-bb05f0e6ef9so10535351276.1 for ; Tue, 06 Jun 2023 22:02:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686114122; x=1688706122; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=4ikiqQuTZUJiABEoiUDyLUaakiCQM83ZBVgIUJ5qyiw=; b=n2XMZRp5Bhjmhnf1S7FOdeGul2K9HH1o1TAnJwUhWb9F6vmziwkWV6fdF2lI0p533B 5GOT5AyErh8jVZ59k3YBHwfAxFO3fyhOCVGdHLmIaZPpzfvkdeojUsmmJJ05IHPsFCgB te03hoMvX1btHIiA5whK5kbe/eZ7KRGl3Dsyp/h0acEPNPi6mD7ojbjncT+eoGIRnv2W zag/KXcJDcGV3+24y9FiynmTW6LgZhcdShPNKO+qvHNy3TontHHuhAPeqgSWxNkntcBL h4ZEtkb+XNmulicM133xPFaLtmZk7/qvXW2fWFQJQhju+MseCuZB4CwCd4QyBEyHvrvH uwyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686114122; x=1688706122; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4ikiqQuTZUJiABEoiUDyLUaakiCQM83ZBVgIUJ5qyiw=; b=Zdmb6oU6R8RoNtqNMcngqYcTDGwLLTqPjDjc2xvhSN6bP/daffp48B6fHlE7cK4MtP dYjxLrHC2YTkUYvlG5fBka30faKwhvqz+Jch+o6Qqz7yiRybkKcQn4YlwWtcBvMPwY3g L4E7RDpb4u+LdcALyDZcnFeSavmVfYITGHQBi0GqaN33ssXuf/zL9zLRFMH+nyzkZ3jD O/oN44xSI0Qj04/NWKPyg5jK4OQOvzXLbpWxn5vEnNAaL6kQPE4O9ahpLMVOma5L9n09 zW5W2FGZs0k2Swg3H9IvrDTVBT3FBAPfw1BxmpLmdX6eZkl6/uezEDyveOwq3hAWv4dV UsIA== X-Gm-Message-State: AC+VfDyZYSXpEvyCD9kqpVgAcMYMWDhKL9GF/37baPrpna9JUyrm3E2s JZEsOGoliUxIrNVqlI5EanrWWmP1uOvu X-Google-Smtp-Source: ACHHUZ491PewUGRspEK6o4fbP8WWZS2GrSxlW/3LEce2E79lrob6kU82jnQTpePQ2QSMvfvryDhahMawa3NP X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:3c35:209f:5d38:b7a1]) (user=irogers job=sendgmr) by 2002:a05:6902:124f:b0:ba8:2e68:7715 with SMTP id t15-20020a056902124f00b00ba82e687715mr2405214ybu.2.1686114122502; Tue, 06 Jun 2023 22:02:02 -0700 (PDT) Date: Tue, 6 Jun 2023 22:01:47 -0700 In-Reply-To: <20230607050148.3248353-1-irogers@google.com> Message-Id: <20230607050148.3248353-3-irogers@google.com> Mime-Version: 1.0 References: <20230607050148.3248353-1-irogers@google.com> X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog Subject: [PATCH v1 2/2] perf top: Add exit routine for main thread From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Andres Freund , Huacai Chen , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add exit_process_thread that reverses init_process_thread. This avoids leak sanitizer reporting memory leaks. Signed-off-by: Ian Rogers --- tools/perf/builtin-top.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 99010dfa5760..c363c04e16df 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -392,7 +392,7 @@ static void prompt_percent(int *target, const char *msg) =20 static void perf_top__prompt_symbol(struct perf_top *top, const char *msg) { - char *buf =3D malloc(0), *p; + char *buf =3D NULL, *p; struct hist_entry *syme =3D top->sym_filter_entry, *n, *found =3D NULL; struct hists *hists =3D evsel__hists(top->sym_evsel); struct rb_node *next; @@ -1227,6 +1227,14 @@ static void init_process_thread(struct perf_top *top) cond_init(&top->qe.cond); } =20 +static void exit_process_thread(struct perf_top *top) +{ + ordered_events__free(&top->qe.data[0]); + ordered_events__free(&top->qe.data[1]); + mutex_destroy(&top->qe.mutex); + cond_destroy(&top->qe.cond); +} + static int __cmd_top(struct perf_top *top) { struct record_opts *opts =3D &top->record_opts; @@ -1357,6 +1365,7 @@ static int __cmd_top(struct perf_top *top) cond_signal(&top->qe.cond); pthread_join(thread_process, NULL); perf_set_singlethreaded(); + exit_process_thread(top); return ret; } =20 --=20 2.41.0.rc0.172.g3f132b7071-goog