Message ID | 20240116083847.89934-1-chentao@kylinos.cn (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Input: synaptics-rmi4: Fix NULL pointer dereference in rmi_driver_probe | expand |
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 <chentao@kylinos.cn> > --- > 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.
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 <chentao@kylinos.cn> >> --- >> 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. >
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);
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 <chentao@kylinos.cn> --- drivers/input/rmi4/rmi_driver.c | 6 ++++++ 1 file changed, 6 insertions(+)