Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

netfilter: ctnetlink: fix error return code in init path

Initialize return variable before exiting on an error path.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>

authored by

Julia Lawall and committed by
Pablo Neira Ayuso
ef6acf68 0a54e939

+2 -1
+2 -1
net/netfilter/nf_conntrack_netlink.c
··· 2790 2790 goto err_unreg_subsys; 2791 2791 } 2792 2792 2793 - if (register_pernet_subsys(&ctnetlink_net_ops)) { 2793 + ret = register_pernet_subsys(&ctnetlink_net_ops); 2794 + if (ret < 0) { 2794 2795 pr_err("ctnetlink_init: cannot register pernet operations\n"); 2795 2796 goto err_unreg_exp_subsys; 2796 2797 }