From: Riccardo Mancini <rickyman7@gmail.com> To: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Ian Rogers <irogers@google.com>, Namhyung Kim <namhyung@kernel.org>, Riccardo Mancini <rickyman7@gmail.com>, Jiri Olsa <jolsa@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, Jin Yao <yao.jin@linux.intel.com>, Song Liu <song@kernel.org>, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] perf config: fix caching and memory leak in perf_home_perfconfig Date: Fri, 20 Aug 2021 15:08:17 +0200 [thread overview] Message-ID: <20210820130817.740536-1-rickyman7@gmail.com> (raw) Acaict, perf_home_perfconfig is supposed to cache the result of home_perfconfig, which returns the default location of perfconfig for the user, given the HOME environment variable. However, the current implementation calls home_perfconfig every time perf_home_perfconfig is called (so no caching is actually performed), replacing the previous pointer, thus also causing a memory leak. This patch adds a check of whether either config or failed is set and, in that case, directly returns config without calling home_perfconfig at each invocation. Cc: Jiri Olsa <jolsa@kernel.org> Fixes: f5f03e19ce14fc31 ("perf config: Add perf_home_perfconfig function") Signed-off-by: Riccardo Mancini <rickyman7@gmail.com> --- tools/perf/util/config.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/perf/util/config.c b/tools/perf/util/config.c index 63d472b336de21d4..6ab670cdf512507e 100644 --- a/tools/perf/util/config.c +++ b/tools/perf/util/config.c @@ -581,6 +581,9 @@ const char *perf_home_perfconfig(void) static const char *config; static bool failed; + if (config || failed) + return config; + config = failed ? NULL : home_perfconfig(); if (!config) failed = true; -- 2.31.1
next reply other threads:[~2021-08-20 13:09 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-20 13:08 Riccardo Mancini [this message] 2021-08-20 14:13 ` Arnaldo Carvalho de Melo 2021-08-20 19:58 ` Riccardo Mancini 2021-08-24 19:26 ` Arnaldo Carvalho de Melo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210820130817.740536-1-rickyman7@gmail.com \ --to=rickyman7@gmail.com \ --cc=acme@kernel.org \ --cc=alexander.shishkin@linux.intel.com \ --cc=irogers@google.com \ --cc=jolsa@kernel.org \ --cc=jolsa@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-perf-users@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=mingo@redhat.com \ --cc=namhyung@kernel.org \ --cc=peterz@infradead.org \ --cc=song@kernel.org \ --cc=yao.jin@linux.intel.com \ --subject='Re: [PATCH] perf config: fix caching and memory leak in perf_home_perfconfig' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).