perf inject: Use zfree() to reduce chances of use after free
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 Apr 2023 12:50:08 +0000 (09:50 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 12 Apr 2023 12:50:08 +0000 (09:50 -0300)
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>
tools/perf/builtin-inject.c

index fd2b38458a5d46b28c8a91632a9e722e46e421a5..76723ac314b60b808c8410d09ea8706e3527b997 100644 (file)
@@ -1311,10 +1311,10 @@ static void guest_session__exit(struct guest_session *gs)
                if (gs->tmp_fd >= 0)
                        close(gs->tmp_fd);
                unlink(gs->tmp_file_name);
-               free(gs->tmp_file_name);
+               zfree(&gs->tmp_file_name);
        }
-       free(gs->vcpu);
-       free(gs->perf_data_file);
+       zfree(&gs->vcpu);
+       zfree(&gs->perf_data_file);
 }
 
 static void get_tsc_conv(struct perf_tsc_conversion *tc, struct perf_record_time_conv *time_conv)