Skip to content

Commit 2d47b79

Browse files
Yang Yingliangwsakernel
authored andcommitted
i2c: mux: reg: check return value after calling platform_get_resource()
It will cause null-ptr-deref in resource_size(), if platform_get_resource() returns NULL, move calling resource_size() after devm_ioremap_resource() that will check 'res' to avoid null-ptr-deref. And use devm_platform_get_and_ioremap_resource() to simplify code. Fixes: b3fdd32 ("i2c: mux: Add register-based mux i2c-mux-reg") Signed-off-by: Yang Yingliang <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
1 parent 810199f commit 2d47b79

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

drivers/i2c/muxes/i2c-mux-reg.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,12 @@ static int i2c_mux_reg_probe(struct platform_device *pdev)
183183
if (!mux->data.reg) {
184184
dev_info(&pdev->dev,
185185
"Register not set, using platform resource\n");
186-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
187-
mux->data.reg_size = resource_size(res);
188-
mux->data.reg = devm_ioremap_resource(&pdev->dev, res);
186+
mux->data.reg = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
189187
if (IS_ERR(mux->data.reg)) {
190188
ret = PTR_ERR(mux->data.reg);
191189
goto err_put_parent;
192190
}
191+
mux->data.reg_size = resource_size(res);
193192
}
194193

195194
if (mux->data.reg_size != 4 && mux->data.reg_size != 2 &&

0 commit comments

Comments
 (0)