diff options
author | Kurt Roeckx <kurt@roeckx.be> | 2016-02-04 01:59:20 +0100 |
---|---|---|
committer | Kurt Roeckx <kurt@roeckx.be> | 2016-02-04 11:03:54 +0100 |
commit | 37e3daf4a1511b1dea8cea627945a105999d0d6b (patch) | |
tree | c6ccffbd0989077ed4535b2ed0c2307e0a3f5d85 /crypto/bio | |
parent | Only use TLS1.2 when it's available (diff) | |
download | openssl-37e3daf4a1511b1dea8cea627945a105999d0d6b.tar.xz openssl-37e3daf4a1511b1dea8cea627945a105999d0d6b.zip |
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.c | 19 |
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) { |