diff mbox

netfilter: byte order issue in nf_ct_seqadj_set

Message ID 20131117043745.GA12111@home
State Accepted
Headers show

Commit Message

Phil Oester Nov. 17, 2013, 4:37 a.m. UTC
In commit 41d73ec053d2, sequence number adjustments were moved to a separate
file.  Unfortunately, a necessary ntohl call was removed when the call to 
adjust_tcp_sequence was collapsed into nf_ct_seqadj_set.  As reported by
Dawid Stawiarsk, this broke the FTP NAT helper.  Add back the byte order
conversions.

Fixes: 41d73ec053d2 ("netfilter: nf_conntrack: make sequence number adjustments usuable without NAT")
Signed-off-by: Phil Oester <kernel@linuxace.com>

Comments

Pablo Neira Ayuso Nov. 19, 2013, 2:36 p.m. UTC | #1
On Sat, Nov 16, 2013 at 08:37:46PM -0800, Phil Oester wrote:
> In commit 41d73ec053d2, sequence number adjustments were moved to a separate
> file.  Unfortunately, a necessary ntohl call was removed when the call to 
> adjust_tcp_sequence was collapsed into nf_ct_seqadj_set.  As reported by
> Dawid Stawiarsk, this broke the FTP NAT helper.  Add back the byte order
> conversions.

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

Patch

diff --git a/net/netfilter/nf_conntrack_seqadj.c b/net/netfilter/nf_conntrack_seqadj.c
index 5f9bfd0..17c1bcb 100644
--- a/net/netfilter/nf_conntrack_seqadj.c
+++ b/net/netfilter/nf_conntrack_seqadj.c
@@ -41,8 +41,8 @@  int nf_ct_seqadj_set(struct nf_conn *ct, enum ip_conntrack_info ctinfo,
 	spin_lock_bh(&ct->lock);
 	this_way = &seqadj->seq[dir];
 	if (this_way->offset_before == this_way->offset_after ||
-	    before(this_way->correction_pos, seq)) {
-		this_way->correction_pos = seq;
+	    before(this_way->correction_pos, ntohl(seq))) {
+		this_way->correction_pos = ntohl(seq);
 		this_way->offset_before	 = this_way->offset_after;
 		this_way->offset_after	+= off;
 	}