Re: [PATCH] chardev: check return value of kobject_set_name() in __register_chrdev()
From: Jan Kara
Date: Wed Aug 26 2026 - 12:25:23 EST
On Wed 26-08-26 12:20:55, phucduc.bui@xxxxxxxxx wrote:
> From: bui duc phuc <phucduc.bui@xxxxxxxxx>
>
> The kobject_set_name() function can fail and return -ENOMEM if memory
> allocation fails.
>
> While all other functions called inside __register_chrdev() are properly
> checked for errors, kobject_set_name() was missing this check. Add the
> error check for kobject_set_name() and jump to the 'out' label on failure
> to maintain consistency and ensure proper error handling.
>
> Found by manual code inspection.
>
> Signed-off-by: bui duc phuc <phucduc.bui@xxxxxxxxx>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza
> ---
> fs/char_dev.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/char_dev.c b/fs/char_dev.c
> index 00229e25c10f..5ce5423f6c99 100644
> --- a/fs/char_dev.c
> +++ b/fs/char_dev.c
> @@ -280,7 +280,9 @@ int __register_chrdev(unsigned int major, unsigned int baseminor,
>
> cdev->owner = fops->owner;
> cdev->ops = fops;
> - kobject_set_name(&cdev->kobj, "%s", name);
> + err = kobject_set_name(&cdev->kobj, "%s", name);
> + if (err)
> + goto out;
>
> err = cdev_add(cdev, MKDEV(cd->major, baseminor), count);
> if (err)
> --
> 2.43.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR