[PATCH] tests/intel/perf_pmu: Fix double free of drpc in test_rc6
From: <hidden>
Date: 2026-09-09 16:04:30
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Krishnaveni Palanisamy <redacted> test_rc6() frees the 'drpc' buffer returned by igt_sysfs_get() at the end of each phase (initial wakeup, post-S3, post-idle) but leaves the pointer dangling. If a subsequent phase is skipped or returns early, the same pointer could be freed again, resulting in a "double free detected in tcache" abort from glibc when the test exits. Set drpc to NULL after each free() so the pointer cannot be reused accidentally. Signed-off-by: Krishnaveni Palanisamy <redacted> --- tests/intel/perf_pmu.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/tests/intel/perf_pmu.c b/tests/intel/perf_pmu.c
index 1e389958f..f48e1af57 100644
--- a/tests/intel/perf_pmu.c
+++ b/tests/intel/perf_pmu.c@@ -1766,6 +1766,7 @@ test_rc6(int gem_fd, unsigned int gt, unsigned int num_gt, unsigned int flags) ts[1] - ts[0], tolerance, drpc); free(drpc); + drpc=NULL; } if (flags & TEST_S3) {
@@ -1806,6 +1807,7 @@ test_rc6(int gem_fd, unsigned int gt, unsigned int num_gt, unsigned int flags) ts[1] - ts[0], tolerance, drpc); free(drpc); + drpc=NULL; } /* Wake up device and check no RC6. */
@@ -1847,6 +1849,7 @@ test_rc6(int gem_fd, unsigned int gt, unsigned int num_gt, unsigned int flags) ts[1] - ts[0], tolerance, drpc); free(drpc); + drpc=NULL; } }
--
2.53.0