diff options
| author | itojun <> | 2001-08-20 02:27:10 +0000 |
|---|---|---|
| committer | itojun <> | 2001-08-20 02:27:10 +0000 |
| commit | 7f230ace8fd819f5d376db88b183f0151a8e6475 (patch) | |
| tree | 90019ad8958d95035a6c7ba73b8b207c143fd166 /src | |
| parent | a4081690eeec13080905e94cd8a17fb257bd54a8 (diff) | |
| download | openbsd-7f230ace8fd819f5d376db88b183f0151a8e6475.tar.gz openbsd-7f230ace8fd819f5d376db88b183f0151a8e6475.tar.bz2 openbsd-7f230ace8fd819f5d376db88b183f0151a8e6475.zip | |
cope with sa_len < sizeof(struct sockaddr).
From: Patrik Lindergren <patrik@datacom.nu>
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libc/net/getifaddrs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/libc/net/getifaddrs.c b/src/lib/libc/net/getifaddrs.c index 5c9c337f71..ca69af8b9e 100644 --- a/src/lib/libc/net/getifaddrs.c +++ b/src/lib/libc/net/getifaddrs.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: getifaddrs.c,v 1.5 2001/07/04 19:43:16 deraadt Exp $ */ | 1 | /* $OpenBSD: getifaddrs.c,v 1.6 2001/08/20 02:27:10 itojun Exp $ */ |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright (c) 1995, 1999 | 4 | * Copyright (c) 1995, 1999 |
| @@ -213,7 +213,10 @@ getifaddrs(struct ifaddrs **pif) | |||
| 213 | dcnt += SA_RLEN(sa); | 213 | dcnt += SA_RLEN(sa); |
| 214 | ncnt += sizeof(ifr->ifr_name) + 1; | 214 | ncnt += sizeof(ifr->ifr_name) + 1; |
| 215 | 215 | ||
| 216 | ifr = (struct ifreq *)(((char *)sa) + SA_LEN(sa)); | 216 | if (SA_LEN(sa) < sizeof(*sa)) |
| 217 | ifr = (struct ifreq *)(((char *)sa) + sizeof(*sa)); | ||
| 218 | else | ||
| 219 | ifr = (struct ifreq *)(((char *)sa) + SA_LEN(sa)); | ||
| 217 | } | 220 | } |
| 218 | #endif /* NET_RT_IFLIST */ | 221 | #endif /* NET_RT_IFLIST */ |
| 219 | 222 | ||
