Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9584db3c authored by Aditya Bavanari's avatar Aditya Bavanari
Browse files

asoc: codecs: Fix NULL pointer dereference in wcd9xxx slim probe



When slim device is NULL or pdata allocation fails in wcd9xxx
slim probe, devm_kfree uses slim device leading to a NULL pointer
dereference. Fix this by returning from probe in these scenarios.

Change-Id: I232661d8ba0320469bc4486e7dd82713e9b53d73
Signed-off-by: default avatarAditya Bavanari <abavanar@codeaurora.org>
parent ac2cc545
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -1284,19 +1284,15 @@ static int wcd9xxx_slim_probe(struct slim_device *slim)
	int ret = 0;
	int intf_type;

	if (!slim)
		return -EINVAL;

	intf_type = wcd9xxx_get_intf_type();

	wcd9xxx = devm_kzalloc(&slim->dev, sizeof(struct wcd9xxx),
				GFP_KERNEL);
	if (!wcd9xxx) {
		ret = -ENOMEM;
		goto err;
	}

	if (!slim) {
		ret = -EINVAL;
		goto err;
	}
	if (!wcd9xxx)
		return -ENOMEM;

	if (intf_type == WCD9XXX_INTERFACE_TYPE_I2C) {
		dev_dbg(&slim->dev, "%s:Codec is detected in I2C mode\n",