summaryrefslogtreecommitdiffstats
path: root/crypto/bio
diff options
context:
space:
mode:
authorKurt Roeckx <kurt@roeckx.be>2016-02-04 01:59:20 +0100
committerKurt Roeckx <kurt@roeckx.be>2016-02-04 11:03:54 +0100
commit37e3daf4a1511b1dea8cea627945a105999d0d6b (patch)
treec6ccffbd0989077ed4535b2ed0c2307e0a3f5d85 /crypto/bio
parent47c1a0e06e2f25d8bf6c6568ba4e3a11fdae422a (diff)
Make fallback addresses static so that we can initialize it
Reviewed-by: Richard Levitte <levitte@openssl.org> MR: #1841
Diffstat (limited to 'crypto/bio')
-rw-r--r--crypto/bio/b_addr.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/crypto/bio/b_addr.c b/crypto/bio/b_addr.c
index ed267e96f6..8f94fe8ffb 100644
--- a/crypto/bio/b_addr.c
+++ b/crypto/bio/b_addr.c
@@ -672,18 +672,20 @@ int BIO_lookup(const char *host, const char *service,
}
} else {
#endif
- struct hostent *he;
+ const struct hostent *he;
/* Windows doesn't seem to have in_addr_t */
#ifdef OPENSSL_SYS_WINDOWS
- uint32_t he_fallback_address = INADDR_ANY;
- uint32_t *he_fallback_addresses[] = { &he_fallback_address, NULL };
+ static uint32_t he_fallback_address;
+ static const uint32_t *he_fallback_addresses[] =
+ { &he_fallback_address, NULL };
#else
- in_addr_t he_fallback_address = INADDR_ANY;
- in_addr_t *he_fallback_addresses[] = { &he_fallback_address, NULL };
+ static in_addr_t he_fallback_address;
+ static const in_addr_t *he_fallback_addresses[] =
+ { &he_fallback_address, NULL };
#endif
- struct hostent he_fallback = { NULL, NULL, AF_INET,
- sizeof(he_fallback_address),
- (char **)&he_fallback_addresses };
+ static const struct hostent he_fallback =
+ { NULL, NULL, AF_INET, sizeof(he_fallback_address),
+ (char **)&he_fallback_addresses };
struct servent *se;
/* Apprently, on WIN64, s_proto and s_port have traded places... */
#ifdef _WIN64
@@ -695,6 +697,7 @@ int BIO_lookup(const char *host, const char *service,
CRYPTO_w_lock(CRYPTO_LOCK_GETHOSTBYNAME);
CRYPTO_w_lock(CRYPTO_LOCK_GETSERVBYNAME);
+ he_fallback_address = INADDR_ANY;
if (host == NULL) {
he = &he_fallback;
switch(lookup_type) {