diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2023-04-12 09:50:08 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2023-04-12 09:52:29 -0300 |
commit | 789eae7f203edc1301d7122ad9b3046e7c56937c (patch) | |
tree | 95f852cffbb23cdf1cc60235273c5cb419197cd5 /tools | |
parent | 79b40a1b182bcca381bb59d0219e1dd681a64981 (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')
-rw-r--r-- | tools/perf/builtin-daemon.c | 14 |
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) |