[PATCH] misc: amd-sbi: Add NULL check in create_misc_rmi_device

Charles Han posted 1 patch 2 weeks, 6 days ago
drivers/misc/amd-sbi/rmi-core.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] misc: amd-sbi: Add NULL check in create_misc_rmi_device
Posted by Charles Han 2 weeks, 6 days ago
Add check for the return value of devm_kmemdup() to prevent
potential null pointer dereference.

Fixes: 35ac2034db72 ("misc: amd-sbi: Add support for AMD_SBI IOCTL")
Signed-off-by: Charles Han <hanchunchao@inspur.com>
---
 drivers/misc/amd-sbi/rmi-core.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c
index 3dec2fc00124..50b8e9e02833 100644
--- a/drivers/misc/amd-sbi/rmi-core.c
+++ b/drivers/misc/amd-sbi/rmi-core.c
@@ -471,6 +471,9 @@ int create_misc_rmi_device(struct sbrmi_data *data,
 							 GFP_KERNEL,
 							 "sbrmi-%x",
 							 data->dev_static_addr);
+	if (!data->sbrmi_misc_dev.name)
+		return -ENOMEM;
+
 	data->sbrmi_misc_dev.minor	= MISC_DYNAMIC_MINOR;
 	data->sbrmi_misc_dev.fops	= &sbrmi_fops;
 	data->sbrmi_misc_dev.parent	= dev;
@@ -478,6 +481,9 @@ int create_misc_rmi_device(struct sbrmi_data *data,
 							 GFP_KERNEL,
 							 "sbrmi-%x",
 							 data->dev_static_addr);
+	if (!data->sbrmi_misc_dev.nodename)
+		return -ENOMEM;
+
 	data->sbrmi_misc_dev.mode	= 0600;
 
 	return misc_register(&data->sbrmi_misc_dev);
-- 
2.43.0
Re: [PATCH] misc: amd-sbi: Add NULL check in create_misc_rmi_device
Posted by Greg KH 2 weeks, 6 days ago
On Fri, Sep 12, 2025 at 06:14:51PM +0800, Charles Han wrote:
> Add check for the return value of devm_kmemdup() to prevent
> potential null pointer dereference.
> 
> Fixes: 35ac2034db72 ("misc: amd-sbi: Add support for AMD_SBI IOCTL")
> Signed-off-by: Charles Han <hanchunchao@inspur.com>
> ---
>  drivers/misc/amd-sbi/rmi-core.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/misc/amd-sbi/rmi-core.c b/drivers/misc/amd-sbi/rmi-core.c
> index 3dec2fc00124..50b8e9e02833 100644
> --- a/drivers/misc/amd-sbi/rmi-core.c
> +++ b/drivers/misc/amd-sbi/rmi-core.c
> @@ -471,6 +471,9 @@ int create_misc_rmi_device(struct sbrmi_data *data,
>  							 GFP_KERNEL,
>  							 "sbrmi-%x",
>  							 data->dev_static_addr);
> +	if (!data->sbrmi_misc_dev.name)
> +		return -ENOMEM;
> +
>  	data->sbrmi_misc_dev.minor	= MISC_DYNAMIC_MINOR;
>  	data->sbrmi_misc_dev.fops	= &sbrmi_fops;
>  	data->sbrmi_misc_dev.parent	= dev;
> @@ -478,6 +481,9 @@ int create_misc_rmi_device(struct sbrmi_data *data,
>  							 GFP_KERNEL,
>  							 "sbrmi-%x",
>  							 data->dev_static_addr);
> +	if (!data->sbrmi_misc_dev.nodename)
> +		return -ENOMEM;
> +

Why not just make this a single if statement?  And this really can't
ever fail in real life :)

thanks,

greg k-h