From: russor Date: Mon, 18 Apr 2016 20:50:25 +0000 (-0700) Subject: endian neutral placement of alternate checksum X-Git-Tag: v0.87~12^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=22488b71fb312967263a6e808ccab97186d5ec7f;p=thirdparty%2Fmtr.git endian neutral placement of alternate checksum --- diff --git a/net.c b/net.c index 05d707e..66319e2 100644 --- 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;