Subject: netfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC

From: Patrick McHardy <[email-masked]>
Date: Mon, 15 Dec 2008 16:42:04 +0100

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.

commit 492092c2b1fc3d74b24d8744ba419dbcefadaf5e
Author: Pablo Neira Ayuso <[email-masked]>
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 <[email-masked]>
    Signed-off-by: Patrick McHardy <[email-masked]>

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,