Page MenuHomeFreeBSD

D28705.id84019.diff
No OneTemporary

D28705.id84019.diff

Index: sys/net/if.c
===================================================================
--- sys/net/if.c
+++ sys/net/if.c
@@ -2012,6 +2012,7 @@
struct ifaddr *ifa_maybe = NULL;
u_int af = addr->sa_family;
const char *addr_data = addr->sa_data, *cplim;
+ const struct sockaddr_dl *sdl;
NET_EPOCH_ASSERT();
/*
@@ -2019,9 +2020,14 @@
* so do that if we can.
*/
if (af == AF_LINK) {
- const struct sockaddr_dl *sdl = (const struct sockaddr_dl *)addr;
- if (sdl->sdl_index && sdl->sdl_index <= V_if_index)
- return (ifaddr_byindex(sdl->sdl_index));
+ sdl = (const struct sockaddr_dl *)addr;
+ if (sdl->sdl_index && sdl->sdl_index <= V_if_index) {
+ ifp = ifnet_byindex(sdl->sdl_index);
+ if (ifp == NULL)
+ return (NULL);
+
+ return (ifp->if_addr);
+ }
}
/*

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 24, 4:33 PM (19 m, 14 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37191146
Default Alt Text
D28705.id84019.diff (800 B)

Event Timeline