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: Aditya Bavanari <abavanar@codeaurora.org>
このコミットが含まれているのは:
Aditya Bavanari
2019-06-21 13:03:02 +05:30
コミット 9584db3c2d

ファイルの表示

@@ -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",