]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()
authorYang Jihong <yangjihong1@huawei.com>
Tue, 6 Feb 2024 08:32:28 +0000 (08:32 +0000)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:21:56 +0000 (18:21 -0400)
[ Upstream commit 1eb3d924e3c0b8c27388b0583a989d757866efb6 ]

slist needs to be freed in both error path and normal path in
thread_map__new_by_tid_str().

Fixes: b52956c961be3a04 ("perf tools: Allow multiple threads or processes in record, stat, top")
Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Yang Jihong <yangjihong1@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240206083228.172607-6-yangjihong1@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/perf/util/thread_map.c

index c9bfe4696943b10e4c8a04abd5ed1a55d6207545..cee7fc3b5bb0c0b731e6a5946b9dbc42ca060168 100644 (file)
@@ -279,13 +279,13 @@ struct perf_thread_map *thread_map__new_by_tid_str(const char *tid_str)
                threads->nr = ntasks;
        }
 out:
+       strlist__delete(slist);
        if (threads)
                refcount_set(&threads->refcnt, 1);
        return threads;
 
 out_free_threads:
        zfree(&threads);
-       strlist__delete(slist);
        goto out;
 }