diff --git a/net/arp/arp_out.c b/net/arp/arp_out.c index 2c4531c530c..fa465e30922 100644 --- a/net/arp/arp_out.c +++ b/net/arp/arp_out.c @@ -224,6 +224,12 @@ void arp_out(FAR struct net_driver_s *dev) net_ipv4addr_copy(ipaddr, dev->d_draddr); #endif + + if (ipaddr == INADDR_ANY) + { + dev->d_len = 0; + return; + } } /* The destination address is on the local network. Check if it is diff --git a/net/arp/arp_send.c b/net/arp/arp_send.c index 52dfc3e7b23..34c5f1acf14 100644 --- a/net/arp/arp_send.c +++ b/net/arp/arp_send.c @@ -254,6 +254,10 @@ int arp_send(in_addr_t ipaddr) net_ipv4addr_copy(dripaddr, dev->d_draddr); #endif ipaddr = dripaddr; + if (ipaddr == INADDR_ANY) + { + return -EHOSTUNREACH; + } } /* The destination address is on the local network. Check if it is