From 905fbeda1ef72cddbce1a6eeecce1c1a31c40b9c Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Tue, 28 Apr 2015 10:15:00 +0000
Subject: [PATCH] Fix checksum computation in the nasmesh driver.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7283 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair2/NETWORK_DRIVER/MESH/common.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/openair2/NETWORK_DRIVER/MESH/common.c b/openair2/NETWORK_DRIVER/MESH/common.c
index a2ac5ad80..fa29b9195 100755
--- a/openair2/NETWORK_DRIVER/MESH/common.c
+++ b/openair2/NETWORK_DRIVER/MESH/common.c
@@ -230,7 +230,7 @@ void nas_COMMON_receive(uint16_t dlen,
 
       case IPPROTO_TCP:
 
-        cksum  = (uint16_t*)&(((struct tcphdr*)((network_header + (network_header->ihl<<2))))->check);
+        cksum  = (uint16_t*)&(((struct tcphdr*)(((char *)network_header + (network_header->ihl<<2))))->check);
         //check  = csum_tcpudp_magic(((struct iphdr *)network_header)->saddr, ((struct iphdr *)network_header)->daddr, tcp_hdrlen(skb), IPPROTO_TCP, ~(*cksum));
 
 #ifdef NAS_DEBUG_RECEIVE
@@ -255,7 +255,7 @@ void nas_COMMON_receive(uint16_t dlen,
 
       case IPPROTO_UDP:
 
-        cksum  = (uint16_t*)&(((struct udphdr*)((network_header + (network_header->ihl<<2))))->check);
+        cksum  = (uint16_t*)&(((struct udphdr*)(((char *)network_header + (network_header->ihl<<2))))->check);
         // check = csum_tcpudp_magic(((struct iphdr *)network_header)->saddr, ((struct iphdr *)network_header)->daddr, udp_hdr(skb)->len, IPPROTO_UDP, ~(*cksum));
 #ifdef NAS_DEBUG_RECEIVE
         printk("[NAS][COMMON] Inst %d UDP packet CS = %x (before), SA (%x)%x, DA (%x)%x\n",
-- 
GitLab