Changeset View
Changeset View
Standalone View
Standalone View
sys/net/debugnet_inet.c
Show First 20 Lines • Show All 341 Lines • ▼ Show 20 Lines | debugnet_handle_arp(struct debugnet_pcb *pcb, struct mbuf **mb) | ||||
if (op == ARPOP_REPLY) { | if (op == ARPOP_REPLY) { | ||||
if (isaddr.s_addr != pcb->dp_gateway && | if (isaddr.s_addr != pcb->dp_gateway && | ||||
isaddr.s_addr != pcb->dp_server) { | isaddr.s_addr != pcb->dp_server) { | ||||
inet_ntoa_r(isaddr, buf); | inet_ntoa_r(isaddr, buf); | ||||
DNETDEBUG("ignoring ARP reply from %s (not configured" | DNETDEBUG("ignoring ARP reply from %s (not configured" | ||||
" server or gateway)\n", buf); | " server or gateway)\n", buf); | ||||
return; | return; | ||||
} | } | ||||
if (pcb->dp_state >= DN_STATE_HAVE_GW_MAC) { | |||||
inet_ntoa_r(isaddr, buf); | |||||
DNETDEBUG("ignoring server ARP reply from %s (already" | |||||
vangyzen: `buf` is uninitialized here. | |||||
" have gateway address)\n", buf); | |||||
return; | |||||
} | |||||
MPASS(pcb->dp_state == DN_STATE_INIT); | |||||
memcpy(pcb->dp_gw_mac.octet, ar_sha(ah), | memcpy(pcb->dp_gw_mac.octet, ar_sha(ah), | ||||
min(ah->ar_hln, ETHER_ADDR_LEN)); | min(ah->ar_hln, ETHER_ADDR_LEN)); | ||||
DNETDEBUG("got server MAC address %6D\n", | DNETDEBUG("got server MAC address %6D\n", | ||||
pcb->dp_gw_mac.octet, ":"); | pcb->dp_gw_mac.octet, ":"); | ||||
MPASS(pcb->dp_state == DN_STATE_INIT); | |||||
pcb->dp_state = DN_STATE_HAVE_GW_MAC; | pcb->dp_state = DN_STATE_HAVE_GW_MAC; | ||||
return; | return; | ||||
} | } | ||||
if (op != ARPOP_REQUEST) { | if (op != ARPOP_REQUEST) { | ||||
DNETDEBUG("ignoring ARP non-request/reply\n"); | DNETDEBUG("ignoring ARP non-request/reply\n"); | ||||
return; | return; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 129 Lines • Show Last 20 Lines |
buf is uninitialized here.