Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf report: Don't call map__kmap if map is NULL.

report__warn_kptr_restrict() calls map__kmap(kernel_map) before checking
kernel_map againest NULL.

Which is dangerous, since map__kmap() will return a invalid and not NULL
address.

It will trigger a warning message in map__kmap() after the patch "perf:
kmaps: enforce usage of kmaps to protect futher bugs." was applied.

This patch fixes it by adding the missing checking.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1428490772-135393-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Wang Nan and committed by
Arnaldo Carvalho de Melo
f6fcc143 54a50f93

+1 -1
+1 -1
tools/perf/builtin-report.c
··· 347 347 static void report__warn_kptr_restrict(const struct report *rep) 348 348 { 349 349 struct map *kernel_map = rep->session->machines.host.vmlinux_maps[MAP__FUNCTION]; 350 - struct kmap *kernel_kmap = map__kmap(kernel_map); 350 + struct kmap *kernel_kmap = kernel_map ? map__kmap(kernel_map) : NULL; 351 351 352 352 if (kernel_map == NULL || 353 353 (kernel_map->dso->hit &&