diff options
Diffstat (limited to 'src/lib/libc/net/freeaddrinfo.c')
| -rw-r--r-- | src/lib/libc/net/freeaddrinfo.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/libc/net/freeaddrinfo.c b/src/lib/libc/net/freeaddrinfo.c index 154f70cd75..c06318fb75 100644 --- a/src/lib/libc/net/freeaddrinfo.c +++ b/src/lib/libc/net/freeaddrinfo.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: freeaddrinfo.c,v 1.9 2016/09/21 04:38:56 guenther Exp $ */ | 1 | /* $OpenBSD: freeaddrinfo.c,v 1.10 2025/12/08 13:30:08 jca Exp $ */ |
| 2 | 2 | ||
| 3 | /* | 3 | /* |
| 4 | * Copyright (c) 1996, 1997, 1998, 1999, Craig Metz, All rights reserved. | 4 | * Copyright (c) 1996, 1997, 1998, 1999, Craig Metz, All rights reserved. |
| @@ -40,11 +40,15 @@ freeaddrinfo(struct addrinfo *ai) | |||
| 40 | { | 40 | { |
| 41 | struct addrinfo *p; | 41 | struct addrinfo *p; |
| 42 | 42 | ||
| 43 | do { | 43 | /* |
| 44 | * Calling freeaddrinfo() with a NULL pointer is unspecified, | ||
| 45 | * but try to cope with it anyway for compatibility. | ||
| 46 | */ | ||
| 47 | while (ai != NULL) { | ||
| 44 | p = ai; | 48 | p = ai; |
| 45 | ai = ai->ai_next; | 49 | ai = ai->ai_next; |
| 46 | free(p->ai_canonname); | 50 | free(p->ai_canonname); |
| 47 | free(p); | 51 | free(p); |
| 48 | } while (ai); | 52 | } |
| 49 | } | 53 | } |
| 50 | DEF_WEAK(freeaddrinfo); | 54 | DEF_WEAK(freeaddrinfo); |
