summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoritojun <>2002-02-25 03:06:10 +0000
committeritojun <>2002-02-25 03:06:10 +0000
commitea9376d8ab0390826e5a195af0edfa4014c15cef (patch)
treeec7a4e807136ded9e8efc403e08743d5b309d8d9
parent17e1b31f90c90bba134b869b5a81cb6155f3825f (diff)
downloadopenbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.tar.gz
openbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.tar.bz2
openbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.zip
skip sockaddr correctly if sa_len < sockaddr. from niklas
-rw-r--r--src/lib/libc/net/if_nameindex.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/libc/net/if_nameindex.c b/src/lib/libc/net/if_nameindex.c
index 88f162d7dd..2b85fbae95 100644
--- a/src/lib/libc/net/if_nameindex.c
+++ b/src/lib/libc/net/if_nameindex.c
@@ -103,6 +103,9 @@ if_nameindex(void)
103 p += IFNAMSIZ; 103 p += IFNAMSIZ;
104 sa = p; 104 sa = p;
105 105
106 if (sa->sa_len < sizeof(struct sockaddr))
107 sa->sa_len = sizeof(struct sockaddr);
108
106 if (len < sa->sa_len) 109 if (len < sa->sa_len)
107 goto ret; 110 goto ret;
108 len -= sa->sa_len; 111 len -= sa->sa_len;