From a988437e90d5a562583818fc7f6b629cd6a5cf5f Mon Sep 17 00:00:00 2001 From: "chao.an" Date: Wed, 20 Jan 2021 15:50:33 +0800 Subject: [PATCH] net/dev: check the available address further check the available address further to avoid obtain unusable device Signed-off-by: chao.an --- net/netdev/netdev_findbyaddr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/netdev/netdev_findbyaddr.c b/net/netdev/netdev_findbyaddr.c index 50ce8cb926..c89488bf09 100644 --- a/net/netdev/netdev_findbyaddr.c +++ b/net/netdev/netdev_findbyaddr.c @@ -73,7 +73,8 @@ FAR struct net_driver_s *netdev_findby_lipv4addr(in_addr_t lipaddr) { /* Is the interface in the "up" state? */ - if ((dev->d_flags & IFF_UP) != 0) + if ((dev->d_flags & IFF_UP) != 0 && + !net_ipv4addr_cmp(dev->d_ipaddr, INADDR_ANY)) { /* Yes.. check for an address match (under the netmask) */ @@ -125,7 +126,8 @@ FAR struct net_driver_s *netdev_findby_lipv6addr( { /* Is the interface in the "up" state? */ - if ((dev->d_flags & IFF_UP) != 0) + if ((dev->d_flags & IFF_UP) != 0 && + !net_ipv6addr_cmp(dev->d_ipv6addr, g_ipv6_unspecaddr)) { /* Yes.. check for an address match (under the netmask) */