net/netlabel: Correct redundant test
Julia Lawall [Mon, 27 Jul 2009 06:15:43 +0000 (06:15 +0000)]
entry was tested for NULL near the beginning of the function, followed by a
return, and there is no intervening modification of its value.

A simplified version of the semantic match that finds this problem is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
*x == NULL
|
*x != NULL
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/netlabel/netlabel_kapi.c

index b0e582f..3ff6f32 100644 (file)
@@ -185,8 +185,7 @@ int netlbl_cfg_unlbl_map_add(const char *domain,
        return 0;
 
 cfg_unlbl_map_add_failure:
-       if (entry != NULL)
-               kfree(entry->domain);
+       kfree(entry->domain);
        kfree(entry);
        kfree(addrmap);
        kfree(map4);
@@ -385,8 +384,7 @@ int netlbl_cfg_cipsov4_map_add(u32 doi,
 
 cfg_cipsov4_map_add_failure:
        cipso_v4_doi_putdef(doi_def);
-       if (entry != NULL)
-               kfree(entry->domain);
+       kfree(entry->domain);
        kfree(entry);
        kfree(addrmap);
        kfree(addrinfo);