Commit cf71c03e authored by Pablo Neira's avatar Pablo Neira Committed by Pablo Neira Ayuso

netfilter: nf_conntrack: simplify __nf_ct_try_assign_helper() return logic

Instead of several goto's just to return the result, simply return it.
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 71212c9b
...@@ -189,7 +189,6 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl, ...@@ -189,7 +189,6 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
struct nf_conntrack_helper *helper = NULL; struct nf_conntrack_helper *helper = NULL;
struct nf_conn_help *help; struct nf_conn_help *help;
struct net *net = nf_ct_net(ct); struct net *net = nf_ct_net(ct);
int ret = 0;
/* We already got a helper explicitly attached. The function /* We already got a helper explicitly attached. The function
* nf_conntrack_alter_reply - in case NAT is in use - asks for looking * nf_conntrack_alter_reply - in case NAT is in use - asks for looking
...@@ -223,15 +222,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl, ...@@ -223,15 +222,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
if (helper == NULL) { if (helper == NULL) {
if (help) if (help)
RCU_INIT_POINTER(help->helper, NULL); RCU_INIT_POINTER(help->helper, NULL);
goto out; return 0;
} }
if (help == NULL) { if (help == NULL) {
help = nf_ct_helper_ext_add(ct, helper, flags); help = nf_ct_helper_ext_add(ct, helper, flags);
if (help == NULL) { if (help == NULL)
ret = -ENOMEM; return -ENOMEM;
goto out;
}
} else { } else {
/* We only allow helper re-assignment of the same sort since /* We only allow helper re-assignment of the same sort since
* we cannot reallocate the helper extension area. * we cannot reallocate the helper extension area.
...@@ -240,13 +237,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl, ...@@ -240,13 +237,13 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
if (tmp && tmp->help != helper->help) { if (tmp && tmp->help != helper->help) {
RCU_INIT_POINTER(help->helper, NULL); RCU_INIT_POINTER(help->helper, NULL);
goto out; return 0;
} }
} }
rcu_assign_pointer(help->helper, helper); rcu_assign_pointer(help->helper, helper);
out:
return ret; return 0;
} }
EXPORT_SYMBOL_GPL(__nf_ct_try_assign_helper); EXPORT_SYMBOL_GPL(__nf_ct_try_assign_helper);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment