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