summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoritojun <itojun@openbsd.org>2002-02-25 03:06:10 +0000
committeritojun <itojun@openbsd.org>2002-02-25 03:06:10 +0000
commit60be732d6016e98b5d9d9dc083bce5cbad9cd1ea (patch)
tree92a59040c5d4fd5a63cd4c8f6494d7bb4989ecb6
parentdo not age address on loopback interface. sync w/kame (diff)
downloadwireguard-openbsd-60be732d6016e98b5d9d9dc083bce5cbad9cd1ea.tar.xz
wireguard-openbsd-60be732d6016e98b5d9d9dc083bce5cbad9cd1ea.zip
skip sockaddr correctly if sa_len < sockaddr. from niklas
-rw-r--r--lib/libc/net/if_nameindex.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libc/net/if_nameindex.c b/lib/libc/net/if_nameindex.c
index 88f162d7dd2..2b85fbae959 100644
--- a/lib/libc/net/if_nameindex.c
+++ b/lib/libc/net/if_nameindex.c
@@ -103,6 +103,9 @@ if_nameindex(void)
p += IFNAMSIZ;
sa = p;
+ if (sa->sa_len < sizeof(struct sockaddr))
+ sa->sa_len = sizeof(struct sockaddr);
+
if (len < sa->sa_len)
goto ret;
len -= sa->sa_len;