]> git.ipfire.org Git - thirdparty/mtr.git/commitdiff
endian neutral placement of alternate checksum
authorrussor <russor@whatsapp.com>
Mon, 18 Apr 2016 20:50:25 +0000 (13:50 -0700)
committerrussor <russor@whatsapp.com>
Mon, 18 Apr 2016 20:50:25 +0000 (13:50 -0700)
net.c

diff --git a/net.c b/net.c
index 05d707e69ef0b8dd4c5988ffa3852501b27111c2..66319e26324607e6c496e5c702a1b278ff2cf48e 100644 (file)
--- a/net.c
+++ b/net.c
@@ -692,8 +692,8 @@ void net_send_query(int index)
         udpp->protocol = ip->protocol;
         udpp->len = udp->length;
         checksum_result = udp_checksum(udpp, udp, sizeof(struct UDPv4PHeader), abs(packetsize) - iphsize, 1);
-        packet[iphsize + sizeof(struct UDPHeader)] = checksum_result & 0xff;
-        packet[iphsize + sizeof(struct UDPHeader) + 1] = checksum_result >> 8;
+        packet[iphsize + sizeof(struct UDPHeader)] = ((char *)&checksum_result)[0];
+        packet[iphsize + sizeof(struct UDPHeader) + 1] = ((char *)&checksum_result)[1];
       } else if (ip->saddr) {
         udpp = (struct UDPv4PHeader *)(malloc(sizeof(struct UDPv4PHeader)));
         udpp->saddr = ip->saddr;