From: russor Date: Mon, 18 Apr 2016 20:47:14 +0000 (-0700) Subject: fix placement of zeros when running alternate udp checksum X-Git-Tag: v0.87~12^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f66787605ef3b4f3cd141529dba3d32ccd06f98;p=thirdparty%2Fmtr.git fix placement of zeros when running alternate udp checksum --- diff --git a/net.c b/net.c index bdc5f85..05d707e 100644 --- a/net.c +++ b/net.c @@ -259,7 +259,8 @@ int udp_checksum(void *pheader, void *udata, int psize, int dsize, int alt_check char csumpacket[tsize]; memset(csumpacket, (unsigned char) abs(bitpattern), abs(tsize)); if (alt_checksum && dsize >= 2) { - csumpacket[psize] = csumpacket[psize + 1] = 0; + csumpacket[psize + sizeof(struct UDPHeader)] = 0; + csumpacket[psize + sizeof(struct UDPHeader) + 1] = 0; } struct UDPv4PHeader *prepend = (struct UDPv4PHeader *) csumpacket;