]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Fix checksum on Sparc64.
authorRoy Marples <roy@marples.name>
Thu, 15 May 2008 20:45:45 +0000 (20:45 +0000)
committerRoy Marples <roy@marples.name>
Thu, 15 May 2008 20:45:45 +0000 (20:45 +0000)
net.c

diff --git a/net.c b/net.c
index d38ba4f563df2c3515bb9778767a27815783983e..b2dd4538dbccbcb651b2e965f1e3480f4d358376 100644 (file)
--- a/net.c
+++ b/net.c
@@ -468,17 +468,16 @@ struct udp_dhcp_packet
 static uint16_t
 checksum(const void *data, uint16_t len)
 {
-       const uint8_t *addr = data;
+       const uint16_t *addr = data;
        uint32_t sum = 0;
 
        while (len > 1) {
-               sum += addr[0] + addr[1] * 256;
-               addr += 2;
+               sum += *addr++;
                len -= 2;
        }
 
        if (len == 1)
-               sum += *addr;
+               sum += *(const uint8_t *)addr;
 
        sum = (sum >> 16) + (sum & 0xffff);
        sum += (sum >> 16);