From: Dr. Stephen Henson Date: Thu, 15 Oct 2009 18:49:30 +0000 (+0000) Subject: Fix for WIN32 and possibly other platforms which don't define in_port_t. X-Git-Tag: OpenSSL-fips-2_0-rc1~1494 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=be45636661e73c952029ccef82f15ceed16f1acf;p=oweals%2Fopenssl.git Fix for WIN32 and possibly other platforms which don't define in_port_t. --- diff --git a/apps/s_cb.c b/apps/s_cb.c index 4b27c7f0f5..78c8a5cc28 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -723,15 +723,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign { case AF_INET: length += sizeof(struct in_addr); + length += sizeof(peer.s4.sin_port); break; case AF_INET6: length += sizeof(struct in6_addr); + length += sizeof(peer.s6.sin6_port); break; default: OPENSSL_assert(0); break; } - length += sizeof(in_port_t); #else length = sizeof(peer.sin_addr); length += sizeof(peer.sin_port); @@ -750,16 +751,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign case AF_INET: memcpy(buffer, &peer.s4.sin_port, - sizeof(in_port_t)); - memcpy(buffer + sizeof(in_port_t), + sizeof(peer.s4.sin_port)); + memcpy(buffer + sizeof(peer.s4.sin_port), &peer.s4.sin_addr, sizeof(struct in_addr)); break; case AF_INET6: memcpy(buffer, &peer.s6.sin6_port, - sizeof(in_port_t)); - memcpy(buffer + sizeof(in_port_t), + sizeof(peer.s6.sin6_port)); + memcpy(buffer + sizeof(peer.s6.sin6_port), &peer.s6.sin6_addr, sizeof(struct in6_addr)); break; @@ -811,15 +812,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned { case AF_INET: length += sizeof(struct in_addr); + length += sizeof(peer.s4.sin_port); break; case AF_INET6: length += sizeof(struct in6_addr); + length += sizeof(peer.s6.sin6_port); break; default: OPENSSL_assert(0); break; } - length += sizeof(in_port_t); #else length = sizeof(peer.sin_addr); length += sizeof(peer.sin_port); @@ -838,16 +840,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned case AF_INET: memcpy(buffer, &peer.s4.sin_port, - sizeof(in_port_t)); - memcpy(buffer + sizeof(in_port_t), + sizeof(peer.s4.sin_port)); + memcpy(buffer + sizeof(peer.s4.sin_port), &peer.s4.sin_addr, sizeof(struct in_addr)); break; case AF_INET6: memcpy(buffer, &peer.s6.sin6_port, - sizeof(in_port_t)); - memcpy(buffer + sizeof(in_port_t), + sizeof(peer.s6.sin6_port)); + memcpy(buffer + sizeof(peer.s6.sin6_port), &peer.s6.sin6_addr, sizeof(struct in6_addr)); break;