diff options
Diffstat (limited to 'dns.c')
-rw-r--r-- | dns.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dns.c,v 1.24 2007/01/03 03:01:40 stevesk Exp $ */ | 1 | /* $OpenBSD: dns.c,v 1.25 2008/06/12 00:03:49 dtucker Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2003 Wesley Griffin. All rights reserved. | 4 | * Copyright (c) 2003 Wesley Griffin. All rights reserved. |
@@ -145,11 +145,20 @@ is_numeric_hostname(const char *hostname) | |||
145 | { | 145 | { |
146 | struct addrinfo hints, *ai; | 146 | struct addrinfo hints, *ai; |
147 | 147 | ||
148 | /* | ||
149 | * We shouldn't ever get a null host but if we do then log an error | ||
150 | * and return -1 which stops DNS key fingerprint processing. | ||
151 | */ | ||
152 | if (hostname == NULL) { | ||
153 | error("is_numeric_hostname called with NULL hostname"); | ||
154 | return -1; | ||
155 | } | ||
156 | |||
148 | memset(&hints, 0, sizeof(hints)); | 157 | memset(&hints, 0, sizeof(hints)); |
149 | hints.ai_socktype = SOCK_DGRAM; | 158 | hints.ai_socktype = SOCK_DGRAM; |
150 | hints.ai_flags = AI_NUMERICHOST; | 159 | hints.ai_flags = AI_NUMERICHOST; |
151 | 160 | ||
152 | if (getaddrinfo(hostname, "0", &hints, &ai) == 0) { | 161 | if (getaddrinfo(hostname, NULL, &hints, &ai) == 0) { |
153 | freeaddrinfo(ai); | 162 | freeaddrinfo(ai); |
154 | return -1; | 163 | return -1; |
155 | } | 164 | } |