tools: Fix incorrect calculation of object size by sizeof
authorLi Dong <lidong@vivo.com>
Mon, 19 Jun 2023 08:20:10 +0000 (16:20 +0800)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 20 Jun 2023 23:58:05 +0000 (16:58 -0700)
What we need to calculate is the size of the object, not the size of the
pointer.

Fixed: 51cfe7a3e87e ("perf python: Avoid 2 leak sanitizer issues")
Signed-off-by: Li Dong <lidong@vivo.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: opensource.kernel@vivo.com
Link: https://lore.kernel.org/r/20230619082036.410-1-lidong@vivo.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/scripting-engines/trace-event-python.c

index 59063ec986192e6990a2e5b365cd6dab96bb49c8..25fcd6630a4d504a03cbb27b4e777a4909ede8cb 100644 (file)
@@ -771,12 +771,12 @@ static void set_regs_in_dict(PyObject *dict,
        int size = __sw_hweight64(attr->sample_regs_intr) * 28;
        char *bf = malloc(size);
 
-       regs_map(&sample->intr_regs, attr->sample_regs_intr, arch, bf, sizeof(bf));
+       regs_map(&sample->intr_regs, attr->sample_regs_intr, arch, bf, size);
 
        pydict_set_item_string_decref(dict, "iregs",
                        _PyUnicode_FromString(bf));
 
-       regs_map(&sample->user_regs, attr->sample_regs_user, arch, bf, sizeof(bf));
+       regs_map(&sample->user_regs, attr->sample_regs_user, arch, bf, size);
 
        pydict_set_item_string_decref(dict, "uregs",
                        _PyUnicode_FromString(bf));