diff options
-rw-r--r-- | apps/s_cb.c | 22 |
1 files changed, 12 insertions, 10 deletions
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; |