From patchwork Wed Dec 12 18:47:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Patrick McHardy X-Patchwork-Id: 205624 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 480422C0092 for ; Thu, 13 Dec 2012 05:47:59 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754358Ab2LLSrz (ORCPT ); Wed, 12 Dec 2012 13:47:55 -0500 Received: from stinky.trash.net ([213.144.137.162]:63174 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754214Ab2LLSrv (ORCPT ); Wed, 12 Dec 2012 13:47:51 -0500 Received: from macbook.localnet (localhost [127.0.0.1]) by stinky.trash.net (Postfix) with ESMTP id 66DAA9D2E8; Wed, 12 Dec 2012 19:47:50 +0100 (MET) From: kaber@trash.net To: pablo@netfilter.org Cc: netfilter-devel@vger.kernel.org, Patrick McHardy Subject: =?UTF-8?q?=5BPATCH=2008/11=5D=20netfilter=3A=20nf=5Ftables=3A=20remove=20ability=20to=20specify=20handles=20for=20new=20rules?= Date: Wed, 12 Dec 2012 19:47:38 +0100 Message-Id: <1355338061-5517-9-git-send-email-kaber@trash.net> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1355338061-5517-1-git-send-email-kaber@trash.net> References: <1355338061-5517-1-git-send-email-kaber@trash.net> MIME-Version: 1.0 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org 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;