Patchwork netfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC

login
register
mail settings
Submitter Patrick McHardy
Date Dec. 15, 2008, 3:42 p.m.
Message ID <49467ACC.8080107@trash.net>
Download mbox | patch
Permalink /patch/14105/
State Accepted
Delegated to: David Miller
Headers show

Comments

Patrick McHardy - Dec. 15, 2008, 3:42 p.m.
Hi Dave,

following is a single netfilter patch for 2.6.28, fixing incorrect
ctnetlink NAT attribute definitions that break common userspace
attribute parsing code.

Please apply, thanks.
David Miller - Dec. 16, 2008, 9:20 a.m.
From: Patrick McHardy <kaber@trash.net>
Date: Mon, 15 Dec 2008 16:42:04 +0100

> following is a single netfilter patch for 2.6.28, fixing incorrect
> ctnetlink NAT attribute definitions that break common userspace
> attribute parsing code.
> 
> Please apply, thanks.

Applied, thanks Patrick.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

commit 492092c2b1fc3d74b24d8744ba419dbcefadaf5e
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Thu Dec 11 14:00:21 2008 +0100

    netfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC
    
    This patch fixes an inconsistency in nfnetlink_conntrack.h that
    I introduced myself. The problem is that CTA_NAT_SEQ_UNSPEC is
    missing from enum ctattr_natseq. This inconsistency may lead to
    problems in the message parsing in userspace (if the message
    contains the CTA_NAT_SEQ_* attributes, of course).
    
    This patch breaks backward compatibility, however, the only known
    client of this code is libnetfilter_conntrack which indeed crashes
    because it assumes the existence of CTA_NAT_SEQ_UNSPEC to do
    the parsing.
    
    The CTA_NAT_SEQ_* attributes were introduced in 2.6.25.
    
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Patrick McHardy <kaber@trash.net>

diff --git a/include/linux/netfilter/nfnetlink_conntrack.h b/include/linux/netfilter/nfnetlink_conntrack.h
index c19595c..29fe9ea 100644
--- a/include/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/linux/netfilter/nfnetlink_conntrack.h
@@ -141,6 +141,7 @@  enum ctattr_protonat {
 #define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
 
 enum ctattr_natseq {
+	CTA_NAT_SEQ_UNSPEC,
 	CTA_NAT_SEQ_CORRECTION_POS,
 	CTA_NAT_SEQ_OFFSET_BEFORE,
 	CTA_NAT_SEQ_OFFSET_AFTER,