From patchwork Wed Dec 12 18:47:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [08/11] netfilter: nf_tables: remove ability to specify handles for new rules Date: Wed, 12 Dec 2012 08:47:38 -0000 From: Patrick McHardy X-Patchwork-Id: 205624 Message-Id: <1355338061-5517-9-git-send-email-kaber@trash.net> To: pablo@netfilter.org Cc: netfilter-devel@vger.kernel.org, Patrick McHardy From: Patrick McHardy Does not serve any useful purpose, simply remove it. Also return an error if neither a handle nor NLM_F_CREATE is specified. Signed-off-by: Patrick McHardy --- net/netfilter/nf_tables_api.c | 31 +++++++++++++------------------ 1 Datei geändert, 13 Zeilen hinzugefügt(+), 18 Zeilen entfernt(-) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index afda73f..bacd417 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -1363,26 +1363,21 @@ static int nf_tables_newrule(struct sock *nlsk, struct sk_buff *skb, if (nla[NFTA_RULE_HANDLE]) { handle = be64_to_cpu(nla_get_be64(nla[NFTA_RULE_HANDLE])); rule = __nf_tables_rule_lookup(chain, handle); - if (IS_ERR(rule)) { - if (PTR_ERR(rule) != -ENOENT) - return PTR_ERR(rule); - rule = NULL; - } + if (IS_ERR(rule)) + return PTR_ERR(rule); - if (rule != NULL) { - if (nlh->nlmsg_flags & NLM_F_EXCL) - return -EEXIST; - if (nlh->nlmsg_flags & NLM_F_REPLACE) { - old_rule = rule; - rule = NULL; - } else - return 0; - } - } else + if (nlh->nlmsg_flags & NLM_F_EXCL) + return -EEXIST; + if (nlh->nlmsg_flags & NLM_F_REPLACE) { + old_rule = rule; + rule = NULL; + } else + return 0; + } else { + if (!create) + return -EINVAL; handle = nf_tables_alloc_handle(table); - - if (handle == 0) - return -EINVAL; + } n = 0; size = 0;