2024-01-16 08:39:26

by Kunwu Chan

[permalink] [raw]
Subject: [PATCH] Input: synaptics-rmi4: Fix NULL pointer dereference in rmi_driver_probe

devm_kasprintf() returns a pointer to dynamically allocated memory
which can be NULL upon failure. Ensure the allocation was successful
by checking the pointer validity.

Fixes: 2b6a321da9a2 ("Input: synaptics-rmi4 - add support for Synaptics RMI4 devices")
Signed-off-by: Kunwu Chan <[email protected]>
---
drivers/input/rmi4/rmi_driver.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
index 258d5fe3d395..d3a601ff51e6 100644
--- a/drivers/input/rmi4/rmi_driver.c
+++ b/drivers/input/rmi4/rmi_driver.c
@@ -1197,6 +1197,12 @@ static int rmi_driver_probe(struct device *dev)
rmi_driver_set_input_params(rmi_dev, data->input);
data->input->phys = devm_kasprintf(dev, GFP_KERNEL,
"%s/input0", dev_name(dev));
+ if (!data->input->phys) {
+ dev_err(dev, "%s: Failed to allocate memory.\n",
+ __func__);
+ retval = -ENOMEM;
+ goto err;
+ }
}

retval = rmi_init_functions(data);
--
2.39.2



2024-01-16 19:12:35

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] Input: synaptics-rmi4: Fix NULL pointer dereference in rmi_driver_probe

On Tue, Jan 16, 2024 at 04:38:47PM +0800, Kunwu Chan wrote:
> devm_kasprintf() returns a pointer to dynamically allocated memory
> which can be NULL upon failure. Ensure the allocation was successful
> by checking the pointer validity.

It is perfectly valid to not set "input->phys" and leave it at NULL. So
while I agree that having error handling is good I do not believe
there's chance for NULL pointer dereference, so please adjust your patch
title.

>
> Fixes: 2b6a321da9a2 ("Input: synaptics-rmi4 - add support for Synaptics RMI4 devices")
> Signed-off-by: Kunwu Chan <[email protected]>
> ---
> drivers/input/rmi4/rmi_driver.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
> index 258d5fe3d395..d3a601ff51e6 100644
> --- a/drivers/input/rmi4/rmi_driver.c
> +++ b/drivers/input/rmi4/rmi_driver.c
> @@ -1197,6 +1197,12 @@ static int rmi_driver_probe(struct device *dev)
> rmi_driver_set_input_params(rmi_dev, data->input);
> data->input->phys = devm_kasprintf(dev, GFP_KERNEL,
> "%s/input0", dev_name(dev));
> + if (!data->input->phys) {
> + dev_err(dev, "%s: Failed to allocate memory.\n",

No need to log the error here, memory allocation will already log the
failure.

Thanks.

--
Dmitry

2024-01-17 07:08:17

by Kunwu Chan

[permalink] [raw]
Subject: Re: [PATCH] Input: synaptics-rmi4: Fix NULL pointer dereference in rmi_driver_probe

On 2024/1/17 03:11, Dmitry Torokhov wrote:
> On Tue, Jan 16, 2024 at 04:38:47PM +0800, Kunwu Chan wrote:
>> devm_kasprintf() returns a pointer to dynamically allocated memory
>> which can be NULL upon failure. Ensure the allocation was successful
>> by checking the pointer validity.
>
> It is perfectly valid to not set "input->phys" and leave it at NULL. So
> while I agree that having error handling is good I do not believe
> there's chance for NULL pointer dereference, so please adjust your patch
> title.

Thanks for your suggestions.
I'll change patch title to "Input: synaptics-rmi4: Add a null pointer
check to the rmi_driver_probe".

>>
>> Fixes: 2b6a321da9a2 ("Input: synaptics-rmi4 - add support for Synaptics RMI4 devices")
>> Signed-off-by: Kunwu Chan <[email protected]>
>> ---
>> drivers/input/rmi4/rmi_driver.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
>> index 258d5fe3d395..d3a601ff51e6 100644
>> --- a/drivers/input/rmi4/rmi_driver.c
>> +++ b/drivers/input/rmi4/rmi_driver.c
>> @@ -1197,6 +1197,12 @@ static int rmi_driver_probe(struct device *dev)
>> rmi_driver_set_input_params(rmi_dev, data->input);
>> data->input->phys = devm_kasprintf(dev, GFP_KERNEL,
>> "%s/input0", dev_name(dev));
>> + if (!data->input->phys) {
>> + dev_err(dev, "%s: Failed to allocate memory.\n",
>
> No need to log the error here, memory allocation will already log the
> failure.
Thanks, I'll remove the dev_err.
>
> Thanks.
>
--
Thanks,
Kunwu