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 /src | |
| parent | 17e1b31f90c90bba134b869b5a81cb6155f3825f (diff) | |
| download | openbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.tar.gz openbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.tar.bz2 openbsd-ea9376d8ab0390826e5a195af0edfa4014c15cef.zip | |
skip sockaddr correctly if sa_len < sockaddr. from niklas
Diffstat (limited to '')
| -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; |
