X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Froute.c;h=2fa6175142ab3de69f3684e9102bb55db59d5ec6;hp=2e8d94ace2123a1c9cd5485ecfad1cd55f43387b;hb=f3ba50ed3d14749b7c1ef100d2a49ac30d3b3853;hpb=f8190b7233871b5b47c3fc8846731d1bbdef78a5 diff --git a/src/route.c b/src/route.c index 2e8d94ac..2fa61751 100644 --- a/src/route.c +++ b/src/route.c @@ -64,16 +64,18 @@ static timeout_t age_subnets_timeout; /* RFC 1071 */ static uint16_t inet_checksum(void *data, int len, uint16_t prevsum) { - uint16_t *p = data; + uint16_t word; uint32_t checksum = prevsum ^ 0xFFFF; while(len >= 2) { - checksum += *p++; + memcpy(&word, data, sizeof(word)); + checksum += word; + data += 2; len -= 2; } if(len) { - checksum += *(uint8_t *)p; + checksum += *(uint8_t *)data; } while(checksum >> 16) {