From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pablo Neira Ayuso Subject: [PATCH 2/4][CTNETLINK] Check for status flags existence on conntrack creation Date: Fri, 10 Nov 2006 02:19:14 +0100 Message-ID: <4553D392.3000005@netfilter.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040708060607010103040202" Cc: Patrick McHardy Return-path: To: Netfilter Development Mailinglist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: netfilter-devel-bounces@lists.netfilter.org Errors-To: netfilter-devel-bounces@lists.netfilter.org List-Id: netfilter-devel.vger.kernel.org This is a multi-part message in MIME format. --------------040708060607010103040202 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Check that status flags are available in the netlink message received to create a new conntrack. Signed-off-by: Pablo Neira Ayuso -- The dawn of the fourth age of Linux firewalling is coming; a time of great struggle and heroic deeds -- J.Kadlecsik got inspired by J.Morris --------------040708060607010103040202 Content-Type: text/plain; name="02fixstatus.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="02fixstatus.patch" [CTNETLINK] Check for status flags existence on conntrack creation Check that status flags are available in the netlink message received to create a new conntrack. Signed-off-by: Pablo Neira Ayuso Index: linux-2.6.git/net/ipv4/netfilter/ip_conntrack_netlink.c =================================================================== --- linux-2.6.git.orig/net/ipv4/netfilter/ip_conntrack_netlink.c 2006-11-08 23:54:28.000000000 +0100 +++ linux-2.6.git/net/ipv4/netfilter/ip_conntrack_netlink.c 2006-11-08 23:54:55.000000000 +0100 @@ -945,9 +945,11 @@ ctnetlink_create_conntrack(struct nfattr ct->timeout.expires = jiffies + ct->timeout.expires * HZ; ct->status |= IPS_CONFIRMED; - err = ctnetlink_change_status(ct, cda); - if (err < 0) - goto err; + if (cda[CTA_STATUS-1]) { + err = ctnetlink_change_status(ct, cda); + if (err < 0) + goto err; + } if (cda[CTA_PROTOINFO-1]) { err = ctnetlink_change_protoinfo(ct, cda); Index: linux-2.6.git/net/netfilter/nf_conntrack_netlink.c =================================================================== --- linux-2.6.git.orig/net/netfilter/nf_conntrack_netlink.c 2006-11-08 23:55:06.000000000 +0100 +++ linux-2.6.git/net/netfilter/nf_conntrack_netlink.c 2006-11-08 23:55:49.000000000 +0100 @@ -961,9 +961,11 @@ ctnetlink_create_conntrack(struct nfattr ct->timeout.expires = jiffies + ct->timeout.expires * HZ; ct->status |= IPS_CONFIRMED; - err = ctnetlink_change_status(ct, cda); - if (err < 0) - goto err; + if (cda[CTA_STATUS-1]) { + err = ctnetlink_change_status(ct, cda); + if (err < 0) + goto err; + } if (cda[CTA_PROTOINFO-1]) { err = ctnetlink_change_protoinfo(ct, cda); --------------040708060607010103040202--