fix tcp_pseudo_checksum: add ntohs() to correctly extract 16-bit IP halfwords from NBO on LE

This commit is contained in:
Evgeny committed 2026-05-13 01:55:14 +03:00
1 parent b1e50c2838
commit f85f2f20fb
1 file changed
+4 -4
+4 -4
View File
@@ -596,10 +596,10 @@ tcp_pseudo_checksum(uint32_t src_ip, uint32_t dst_ip, uint8_t proto, uint16_t tc
{
uint32_t sum = 0;
sum += (uint32_t)(uint16_t)((src_ip >> 16) & 0xFFFF);
sum += (uint32_t)(uint16_t)(src_ip & 0xFFFF);
sum += (uint32_t)(uint16_t)((dst_ip >> 16) & 0xFFFF);
sum += (uint32_t)(uint16_t)(dst_ip & 0xFFFF);
sum += (uint32_t)ntohs((uint16_t)((src_ip >> 16) & 0xFFFF));
sum += (uint32_t)ntohs((uint16_t)(src_ip & 0xFFFF));
sum += (uint32_t)ntohs((uint16_t)((dst_ip >> 16) & 0xFFFF));
sum += (uint32_t)ntohs((uint16_t)(dst_ip & 0xFFFF));
sum += htons((uint16_t)proto);
sum += htons(tcp_len);