2013-10-29 23:15:36

by Rashika Kheria

[permalink] [raw]
Subject: [PATCH v7 3/3] Staging: zram: Fix variable dereferenced before check

This patch fixes the following Smatch warning in zram_drv.c-
drivers/staging/zram/zram_drv.c:899
destroy_device() warn: variable dereferenced before check 'zram->disk' (see line 896)

Cc: [email protected]
Acked-by: Minchan Kim <[email protected]>
Signed-off-by: Rashika Kheria <[email protected]>
---
drivers/staging/zram/zram_drv.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
index 592e760..bf28d56 100644
--- a/drivers/staging/zram/zram_drv.c
+++ b/drivers/staging/zram/zram_drv.c
@@ -901,13 +901,10 @@ static void destroy_device(struct zram *zram)
sysfs_remove_group(&disk_to_dev(zram->disk)->kobj,
&zram_disk_attr_group);

- if (zram->disk) {
- del_gendisk(zram->disk);
- put_disk(zram->disk);
- }
+ del_gendisk(zram->disk);
+ put_disk(zram->disk);

- if (zram->queue)
- blk_cleanup_queue(zram->queue);
+ blk_cleanup_queue(zram->queue);
}

static int __init zram_init(void)
--
1.7.9.5


2013-10-30 02:35:19

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH v7 3/3] Staging: zram: Fix variable dereferenced before check

On Wed, Oct 30, 2013 at 04:45:24AM +0530, Rashika Kheria wrote:
> This patch fixes the following Smatch warning in zram_drv.c-
> drivers/staging/zram/zram_drv.c:899
> destroy_device() warn: variable dereferenced before check 'zram->disk' (see line 896)
>
> Cc: [email protected]

It shouldn't be a stable stuff because it's just warning of Smatch
but there is no bug in real practice.

> Acked-by: Minchan Kim <[email protected]>
> Signed-off-by: Rashika Kheria <[email protected]>
> ---
> drivers/staging/zram/zram_drv.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
> index 592e760..bf28d56 100644
> --- a/drivers/staging/zram/zram_drv.c
> +++ b/drivers/staging/zram/zram_drv.c
> @@ -901,13 +901,10 @@ static void destroy_device(struct zram *zram)
> sysfs_remove_group(&disk_to_dev(zram->disk)->kobj,
> &zram_disk_attr_group);
>
> - if (zram->disk) {
> - del_gendisk(zram->disk);
> - put_disk(zram->disk);
> - }
> + del_gendisk(zram->disk);
> + put_disk(zram->disk);
>
> - if (zram->queue)
> - blk_cleanup_queue(zram->queue);
> + blk_cleanup_queue(zram->queue);
> }
>
> static int __init zram_init(void)
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Kind regards,
Minchan Kim

2013-10-30 10:44:49

by Jerome Marchand

[permalink] [raw]
Subject: Re: [PATCH v7 3/3] Staging: zram: Fix variable dereferenced before check

On 10/30/2013 12:15 AM, Rashika Kheria wrote:
> This patch fixes the following Smatch warning in zram_drv.c-
> drivers/staging/zram/zram_drv.c:899
> destroy_device() warn: variable dereferenced before check 'zram->disk' (see line 896)
>
> Cc: [email protected]
> Acked-by: Minchan Kim <[email protected]>
> Signed-off-by: Rashika Kheria <[email protected]>
Acked-by: Jerome Marchand <[email protected]>

> ---
> drivers/staging/zram/zram_drv.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
> index 592e760..bf28d56 100644
> --- a/drivers/staging/zram/zram_drv.c
> +++ b/drivers/staging/zram/zram_drv.c
> @@ -901,13 +901,10 @@ static void destroy_device(struct zram *zram)
> sysfs_remove_group(&disk_to_dev(zram->disk)->kobj,
> &zram_disk_attr_group);
>
> - if (zram->disk) {
> - del_gendisk(zram->disk);
> - put_disk(zram->disk);
> - }
> + del_gendisk(zram->disk);
> + put_disk(zram->disk);
>
> - if (zram->queue)
> - blk_cleanup_queue(zram->queue);
> + blk_cleanup_queue(zram->queue);
> }
>
> static int __init zram_init(void)
>