Commit c72b9c33 authored by Kunwu Chan's avatar Kunwu Chan Committed by Tony Lindgren
Browse files

ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init



kasprintf() returns a pointer to dynamically allocated memory which can
be NULL upon failure. When 'soc_dev_attr->family' is NULL,it'll trigger
the null pointer dereference issue, such as in 'soc_info_show'.

And when 'soc_device_register' fails, it's necessary to release
'soc_dev_attr->family' to avoid memory leaks.

Fixes: 6770b211 ("ARM: OMAP2+: Export SoC information to userspace")
Signed-off-by: default avatarKunwu Chan <chentao@kylinos.cn>
Message-ID: <20231123145237.609442-1-chentao@kylinos.cn>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 1e5caee2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -793,11 +793,16 @@ void __init omap_soc_device_init(void)

	soc_dev_attr->machine  = soc_name;
	soc_dev_attr->family   = omap_get_family();
	if (!soc_dev_attr->family) {
		kfree(soc_dev_attr);
		return;
	}
	soc_dev_attr->revision = soc_rev;
	soc_dev_attr->custom_attr_group = omap_soc_groups[0];

	soc_dev = soc_device_register(soc_dev_attr);
	if (IS_ERR(soc_dev)) {
		kfree(soc_dev_attr->family);
		kfree(soc_dev_attr);
		return;
	}