diff options
author | itojun <> | 2002-02-25 03:06:10 +0000 |
---|---|---|
committer | itojun <> | 2002-02-25 03:06:10 +0000 |
commit | ea9376d8ab0390826e5a195af0edfa4014c15cef (patch) | |
tree | ec7a4e807136ded9e8efc403e08743d5b309d8d9 | |
parent | 17e1b31f90c90bba134b869b5a81cb6155f3825f (diff) | |
download | openbsd-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.c | 3 |
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; |