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

powerpc/imc-pmu: Add a null pointer check in update_events_in_group()

kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure.

Fixes: 885dcd709ba9 ("powerpc/perf: Add nest IMC PMU support")
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231126093719.1440305-1-chentao@kylinos.cn

authored by

Kunwu Chan and committed by
Michael Ellerman
0a233867 e123015c

+6
+6
arch/powerpc/perf/imc-pmu.c
··· 299 299 attr_group->attrs = attrs; 300 300 do { 301 301 ev_val_str = kasprintf(GFP_KERNEL, "event=0x%x", pmu->events[i].value); 302 + if (!ev_val_str) 303 + continue; 302 304 dev_str = device_str_attr_create(pmu->events[i].name, ev_val_str); 303 305 if (!dev_str) 304 306 continue; ··· 308 306 attrs[j++] = dev_str; 309 307 if (pmu->events[i].scale) { 310 308 ev_scale_str = kasprintf(GFP_KERNEL, "%s.scale", pmu->events[i].name); 309 + if (!ev_scale_str) 310 + continue; 311 311 dev_str = device_str_attr_create(ev_scale_str, pmu->events[i].scale); 312 312 if (!dev_str) 313 313 continue; ··· 319 315 320 316 if (pmu->events[i].unit) { 321 317 ev_unit_str = kasprintf(GFP_KERNEL, "%s.unit", pmu->events[i].name); 318 + if (!ev_unit_str) 319 + continue; 322 320 dev_str = device_str_attr_create(ev_unit_str, pmu->events[i].unit); 323 321 if (!dev_str) 324 322 continue;