summaryrefslogtreecommitdiff
path: root/tools/perf/builtin-daemon.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2023-04-12 09:50:08 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2023-04-12 09:52:29 -0300
commit789eae7f203edc1301d7122ad9b3046e7c56937c (patch)
tree95f852cffbb23cdf1cc60235273c5cb419197cd5 /tools/perf/builtin-daemon.c
parent79b40a1b182bcca381bb59d0219e1dd681a64981 (diff)
perf daemon: Use zfree() to reduce chances of use after free
Do defensive programming by using zfree() to initialize freed pointers to NULL, so that eventual use after free result in a NULL pointer deref instead of more subtle behaviour. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-daemon.c')
-rw-r--r--tools/perf/builtin-daemon.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/perf/builtin-daemon.c b/tools/perf/builtin-daemon.c
index 7036ec92d47d..34cbe3e959aa 100644
--- a/tools/perf/builtin-daemon.c
+++ b/tools/perf/builtin-daemon.c
@@ -193,7 +193,7 @@ static int session_config(struct daemon *daemon, const char *var, const char *va
if (!same) {
if (session->run) {
- free(session->run);
+ zfree(&session->run);
pr_debug("reconfig: session %s is changed\n", name);
}
@@ -924,9 +924,9 @@ static void daemon__signal(struct daemon *daemon, int sig)
static void daemon_session__delete(struct daemon_session *session)
{
- free(session->base);
- free(session->name);
- free(session->run);
+ zfree(&session->base);
+ zfree(&session->name);
+ zfree(&session->run);
free(session);
}
@@ -975,9 +975,9 @@ static void daemon__exit(struct daemon *daemon)
list_for_each_entry_safe(session, h, &daemon->sessions, list)
daemon_session__remove(session);
- free(daemon->config_real);
- free(daemon->config_base);
- free(daemon->base);
+ zfree(&daemon->config_real);
+ zfree(&daemon->config_base);
+ zfree(&daemon->base);
}
static int daemon__reconfig(struct daemon *daemon)