Discussion:
[PATCH] target/configfs: Remove unnecessary null test
Himangi Saraogi
2014-07-16 20:59:53 UTC
Permalink
This patch removes the null test on lun_cg. lun_cg is initialized
at the beginning of the function to &lun->lun_group. Since lun_cg is
dereferenced prior to the null test, it must be a valid pointer.

The following Coccinelle script is used for detecting the change:

@r@
expression e,f;
identifier g,y;
statement S1,S2;
@@

*e = &f->g
<+...
f->y
...+>
*if (e != NULL || ...)
S1 else S2

Signed-off-by: Himangi Saraogi <***@gmail.com>
Acked-by: Julia Lawall <***@lip6.fr>
---
drivers/target/target_core_fabric_configfs.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
index 7de9f04..7228a18 100644
--- a/drivers/target/target_core_fabric_configfs.c
+++ b/drivers/target/target_core_fabric_configfs.c
@@ -917,8 +917,7 @@ static struct config_group *target_fabric_make_lun(

return &lun->lun_group;
out:
- if (lun_cg)
- kfree(lun_cg->default_groups);
+ kfree(lun_cg->default_groups);
return ERR_PTR(errno);
}
--
1.9.1
Nicholas A. Bellinger
2014-07-30 01:23:23 UTC
Permalink
Hi Himangi,
Post by Himangi Saraogi
This patch removes the null test on lun_cg. lun_cg is initialized
at the beginning of the function to &lun->lun_group. Since lun_cg is
dereferenced prior to the null test, it must be a valid pointer.
@r@
expression e,f;
identifier g,y;
statement S1,S2;
@@
*e = &f->g
<+...
f->y
...+>
*if (e != NULL || ...)
S1 else S2
---
drivers/target/target_core_fabric_configfs.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
index 7de9f04..7228a18 100644
--- a/drivers/target/target_core_fabric_configfs.c
+++ b/drivers/target/target_core_fabric_configfs.c
@@ -917,8 +917,7 @@ static struct config_group *target_fabric_make_lun(
return &lun->lun_group;
- if (lun_cg)
- kfree(lun_cg->default_groups);
+ kfree(lun_cg->default_groups);
return ERR_PTR(errno);
}
Thanks, applied to target-pending/for-next.

--nab

Loading...