From fbcd52a0550304486bf33e6d2b42de439f5d61fa Mon Sep 17 00:00:00 2001 From: Adnan Hasnain Alam Date: Fri, 20 Apr 2018 00:38:37 +0530 Subject: [PATCH 1/2] ip_len is iphdr + data --- src/ipv4defrag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ipv4defrag.c b/src/ipv4defrag.c index 194891b..48b4d43 100644 --- a/src/ipv4defrag.c +++ b/src/ipv4defrag.c @@ -240,7 +240,7 @@ inline static unsigned char *build_datagram ( pntoh_ipv4_session_t session , pnt { memcpy ( ret , iphdr , offsethdr ); iphdr = (struct ip*)ret; - iphdr->ip_len = htons(flow->total); + iphdr->ip_len = htons(flow->total) + offsethdr; iphdr->ip_sum = 0; iphdr->ip_sum = cksum ( (unsigned short*) iphdr , (int)offsethdr ); free ( flow->final_iphdr ); From 7c039a00b9d2d9bc331dd7dfd97daa5f81bbb906 Mon Sep 17 00:00:00 2001 From: Adnan Hasnain Alam Date: Fri, 20 Apr 2018 09:11:54 +0530 Subject: [PATCH 2/2] htons error fix. --- src/ipv4defrag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ipv4defrag.c b/src/ipv4defrag.c index 48b4d43..334de01 100644 --- a/src/ipv4defrag.c +++ b/src/ipv4defrag.c @@ -240,7 +240,7 @@ inline static unsigned char *build_datagram ( pntoh_ipv4_session_t session , pnt { memcpy ( ret , iphdr , offsethdr ); iphdr = (struct ip*)ret; - iphdr->ip_len = htons(flow->total) + offsethdr; + iphdr->ip_len = htons(flow->total + offsethdr); iphdr->ip_sum = 0; iphdr->ip_sum = cksum ( (unsigned short*) iphdr , (int)offsethdr ); free ( flow->final_iphdr );