Path: csiph.com!aioe.org!bofh.it!news.nic.it!robomod From: Kevin Cernekee Newsgroups: linux.kernel Subject: [RFC/PATCH 3/3] netfilter: ctnetlink: Fix regression in CTA_HELP processing Date: Tue, 17 Jan 2017 06:20:01 +0100 Message-ID: References: X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gUZxtfT17xbNdzA0V8wVck3AEuu+Pm832ppg+Ko1BA8=; b=RF92QqKdE8bo5o314vjaw937zL13vRlg/FlMn4zvn59+AgB66MKLzaVIzj/dR66Ybn 4jkBws83wBs1HomocWXkEb07w2qTJzhsGN2q/z7kDcFz8z8ykR4vekriGRcv0yihBHYW SPZuiWy8aDw9AI1AQqET+qUsqWHq7N4Tm7Hzjfo1OLxrGX7j++748Ht7jZwCAXxrP33g rzTEzKhIV6dW1+O21CLNULgZewybEcRRpF15AGwbGRPSeoe43MePpcxbI4q6HS3+Exem +4C74vN9PKPK2IoNlVN+e+fpvzQEBArY4oshtS6U7RL6e9KrxYJ8wOIpLl/cgadilsr9 bT1Q== X-Gm-Message-State: AIkVDXJPy1GsGKWqQT7+oMMnS8iDQlqho5TgpoUz3lQ9o1HpSa95L0aatgHK2kzg38X3hw== X-Received: by 10.99.149.27 with SMTP id p27mr7889719pgd.21.1484630101903; Mon, 16 Jan 2017 21:15:01 -0800 (PST) X-Mailer: git-send-email 2.7.4 Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 38 Organization: linux.* mail to news gateway X-Original-Cc: netfilter-devel@vger.kernel.org, linux-kernel@vger.kernel.org X-Original-Date: Mon, 16 Jan 2017 21:14:08 -0800 X-Original-Message-ID: <1484630048-25416-4-git-send-email-cernekee@chromium.org> X-Original-References: <1484630048-25416-1-git-send-email-cernekee@chromium.org> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1560261 If a user program specifies CTA_HELP but the argument matches the current conntrack helper name, ignore it instead of generating an error. Signed-off-by: Kevin Cernekee --- net/netfilter/nf_conntrack_netlink.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index cc59f388928e..2912f582da65 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c @@ -1472,14 +1472,19 @@ ctnetlink_change_helper(struct nf_conn *ct, const struct nlattr * const cda[]) struct nlattr *helpinfo = NULL; int err; - /* don't change helper of sibling connections */ - if (ct->master) - return -EBUSY; - err = ctnetlink_parse_help(cda[CTA_HELP], &helpname, &helpinfo); if (err < 0) return err; + /* don't change helper of sibling connections */ + if (ct->master) { + if (help && help->helper && + !strcmp(help->helper->name, helpname)) + return 0; + else + return -EBUSY; + } + if (!strcmp(helpname, "")) { if (help && help->helper) { /* we had a helper before ... */ -- 2.7.4