lkml.org 
[lkml]   [2019]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] knav_qmss_queue: fix a missing-check bug in knav_pool_create()
On Thu, May 30, 2019 at 11:39:49AM +0800, Gen Zhang wrote:
> In knav_pool_create(), 'pool->name' is allocated by kstrndup(). It
> returns NULL when fails. So 'pool->name' should be checked. And free
> 'pool' when error.
>
> Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
> ---
> diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c
> index 8b41837..0f8cb28 100644
> --- a/drivers/soc/ti/knav_qmss_queue.c
> +++ b/drivers/soc/ti/knav_qmss_queue.c
> @@ -814,6 +814,12 @@ void *knav_pool_create(const char *name,
> }
>
> pool->name = kstrndup(name, KNAV_NAME_SIZE - 1, GFP_KERNEL);
> + if (!pool->name) {
> + dev_err(kdev->dev, "failed to duplicate for pool(%s)\n",
> + name);
> + ret = -ENOMEM;
> + goto err_name;
> + }
> pool->kdev = kdev;
> pool->dev = kdev->dev;
>
> @@ -864,6 +870,7 @@ void *knav_pool_create(const char *name,
> mutex_unlock(&knav_dev_lock);
> err:
> kfree(pool->name);
> +err_name:
> devm_kfree(kdev->dev, pool);
> return ERR_PTR(ret);
> }
Can anyone look into this patch?

Thanks
Gen

\
 
 \ /
  Last update: 2019-06-11 11:39    [W:1.118 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site