From 867cda50716d393e132001484c6f0a4ae50e7eb9 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 16 Jul 2009 11:04:56 +0200 Subject: dccp: fix endianess in handshake_seq This patch fixes missing endianess conversion of the new attribute ATTR_HANDSHAKE_SEQ that was included in 19f35b21dbe2bb4386eeced4e0d87f3b2e1d. Signed-off-by: Pablo Neira Ayuso --- src/conntrack/build.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/conntrack/build.c') diff --git a/src/conntrack/build.c b/src/conntrack/build.c index dea0c75..623774f 100644 --- a/src/conntrack/build.c +++ b/src/conntrack/build.c @@ -160,11 +160,18 @@ static void __build_protoinfo(struct nfnlhdr *req, size_t size, CTA_PROTOINFO_DCCP_ROLE, &ct->protoinfo.dccp.role, sizeof(u_int8_t)); - if (test_bit(ATTR_DCCP_HANDSHAKE_SEQ, ct->set)) + if (test_bit(ATTR_DCCP_HANDSHAKE_SEQ, ct->set)) { + /* FIXME: use __cpu_to_be64() instead which is the + * correct operation. This is a semantic abuse but + * we have no function to do it in libnfnetlink. */ + u_int64_t handshake_seq = + __be64_to_cpu(ct->protoinfo.dccp.handshake_seq); + nfnl_addattr_l(&req->nlh, size, CTA_PROTOINFO_DCCP_SEQ, - &ct->protoinfo.dccp.handshake_seq, + &handshake_seq, sizeof(u_int64_t)); + } nfnl_nest_end(&req->nlh, nest_proto); nfnl_nest_end(&req->nlh, nest); default: -- cgit v1.2.3