diff options
| author | Roy Marples <roy@marples.name> | 2008-09-09 20:52:21 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2008-09-09 20:52:21 +0000 |
| commit | 3270bfbf689cf8e7111b21c0b22b4951bb9b9175 (patch) | |
| tree | ee5d0b35342317c51df0386e485fc334147057ef /arp.c | |
| parent | 59795183289d077902f64a815c31126499a12ca2 (diff) | |
| download | dhcpcd-3270bfbf689cf8e7111b21c0b22b4951bb9b9175.tar.xz | |
Fix memory errors.
Diffstat (limited to 'arp.c')
| -rw-r--r-- | arp.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -57,8 +57,8 @@ send_arp(const struct interface *iface, int op, in_addr_t sip, in_addr_t tip) ar.ar_hln = iface->hwlen; ar.ar_pln = sizeof(sip); ar.ar_op = htons(op); - p = arp_buffer; - p += sizeof(ar); + memcpy(arp_buffer, &ar, sizeof(ar)); + p = arp_buffer + sizeof(ar); memcpy(p, iface->hwaddr, iface->hwlen); p += iface->hwlen; memcpy(p, &sip, sizeof(sip)); @@ -69,7 +69,7 @@ send_arp(const struct interface *iface, int op, in_addr_t sip, in_addr_t tip) *p++ = '\0'; memcpy(p, &tip, sizeof(tip)); p += sizeof(tip); - len = sizeof(ar) + 2 * iface->hwlen + 2 * sizeof(sip); + len = p - arp_buffer; retval = send_raw_packet(iface, ETHERTYPE_ARP, arp_buffer, len); return retval; } |
