perf tools: Use zfree() where applicable
In places where the equivalent was already being done, i.e.: free(a); a = NULL; And in placs where struct members are being freed so that if we have some erroneous reference to its struct, then accesses to freed members will result in segfaults, which we can detect faster than use after free to areas that may still have something seemingly valid. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-jatyoofo5boc1bsvoig6bb6i@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/zalloc.h>
|
||||
#include <inttypes.h>
|
||||
#include <unistd.h>
|
||||
#include "tests.h"
|
||||
@@ -115,8 +116,8 @@ noinline int test_dwarf_unwind__thread(struct thread *thread)
|
||||
}
|
||||
|
||||
out:
|
||||
free(sample.user_stack.data);
|
||||
free(sample.user_regs.regs);
|
||||
zfree(&sample.user_stack.data);
|
||||
zfree(&sample.user_regs.regs);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@@ -3,6 +3,7 @@
|
||||
#include "util/expr.h"
|
||||
#include "tests.h"
|
||||
#include <stdlib.h>
|
||||
#include <linux/zalloc.h>
|
||||
|
||||
static int test(struct parse_ctx *ctx, const char *e, double val2)
|
||||
{
|
||||
@@ -58,7 +59,7 @@ int test__expr(struct test *t __maybe_unused, int subtest __maybe_unused)
|
||||
TEST_ASSERT_VAL("find other", other[3] == NULL);
|
||||
|
||||
for (i = 0; i < num_other; i++)
|
||||
free((void *)other[i]);
|
||||
zfree(&other[i]);
|
||||
free((void *)other);
|
||||
|
||||
return 0;
|
||||
|
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/zalloc.h>
|
||||
#include "cpumap.h"
|
||||
#include "mem2node.h"
|
||||
#include "tests.h"
|
||||
@@ -67,7 +68,7 @@ int test__mem2node(struct test *t __maybe_unused, int subtest __maybe_unused)
|
||||
T("failed: mem2node__node", -1 == mem2node__node(&map, 0x1050));
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(nodes); i++)
|
||||
free(nodes[i].set);
|
||||
zfree(&nodes[i].set);
|
||||
|
||||
mem2node__exit(&map);
|
||||
return 0;
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#include "tests.h"
|
||||
#include "thread_map.h"
|
||||
#include "debug.h"
|
||||
#include <linux/zalloc.h>
|
||||
|
||||
#define NAME (const char *) "perf"
|
||||
#define NAMEUL (unsigned long) NAME
|
||||
@@ -133,7 +134,7 @@ int test__thread_map_remove(struct test *test __maybe_unused, int subtest __mayb
|
||||
thread_map__remove(threads, 0));
|
||||
|
||||
for (i = 0; i < threads->nr; i++)
|
||||
free(threads->map[i].comm);
|
||||
zfree(&threads->map[i].comm);
|
||||
|
||||
free(threads);
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user