Re: [tip: perf/core] perf script: Fix memory leaks in list_scripts()
From: Gustavo A. R. Silva
Date: Tue Aug 27 2019 - 12:12:18 EST
Hi,
On 8/27/19 3:26 AM, tip-bot2 for Gustavo A. R. Silva wrote:
> The following commit has been merged into the perf/core branch of tip:
>
> Commit-ID: 3b4acbb92dbda4829e021e5c6d5410658849fa1c
> Gitweb: https://git.kernel.org/tip/3b4acbb92dbda4829e021e5c6d5410658849fa1c
> Author: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> AuthorDate: Mon, 08 Apr 2019 11:27:48 -05:00
> Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> CommitterDate: Mon, 26 Aug 2019 11:58:30 -03:00
>
> perf script: Fix memory leaks in list_scripts()
>
> In case memory resources for *buf* and *paths* were allocated, jump to
> *out* and release them before return.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
This should be tagged for stable:
Cc: stable@xxxxxxxxxxxxxxx
> Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
> Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Cc: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Addresses-Coverity-ID: 1444328 ("Resource leak")
> Fixes: 6f3da20e151f ("perf report: Support builtin perf script in scripts menu")
> Link: http://lkml.kernel.org/r/20190408162748.GA21008@embeddedor
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/ui/browsers/scripts.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/ui/browsers/scripts.c b/tools/perf/ui/browsers/scripts.c
> index f2fd9f0..50e0c03 100644
> --- a/tools/perf/ui/browsers/scripts.c
> +++ b/tools/perf/ui/browsers/scripts.c
> @@ -133,8 +133,10 @@ static int list_scripts(char *script_name, bool *custom,
> int key = ui_browser__input_window("perf script command",
> "Enter perf script command line (without perf script prefix)",
> script_args, "", 0);
> - if (key != K_ENTER)
> - return -1;
> + if (key != K_ENTER) {
> + ret = -1;
> + goto out;
> + }
> sprintf(script_name, "%s script %s", perf, script_args);
> } else if (choice < num + max_std) {
> strcpy(script_name, paths[choice]);
>
--
Gustavo