From ca1beab7c11f0fe5e2717adc85fcf4ee8a9b4ae1 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Fri, 6 Apr 2018 14:33:30 +0200 Subject: [PATCH] bio/b_addr.c: resolve HP-UX compiler warnings. The warning reads "[cast] may cause misaligned access". Even though this can be application-supplied pointer, misaligned access shouldn't happen, because structure type is "encoded" into data itself, and application would customarily pass correctly aligned pointer. But there is no harm in resolving the warning... Reviewed-by: Rich Salz Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/5894) (cherry picked from commit 55bd917bc4213bc668f48b87d8c6feb9918fef8f) --- crypto/bio/b_addr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crypto/bio/b_addr.c b/crypto/bio/b_addr.c index aea843a7b9..24097d70ad 100644 --- a/crypto/bio/b_addr.c +++ b/crypto/bio/b_addr.c @@ -66,18 +66,18 @@ void BIO_ADDR_clear(BIO_ADDR *ap) int BIO_ADDR_make(BIO_ADDR *ap, const struct sockaddr *sa) { if (sa->sa_family == AF_INET) { - ap->s_in = *(const struct sockaddr_in *)sa; + memcpy(&(ap->s_in), sa, sizeof(struct sockaddr_in)); return 1; } #ifdef AF_INET6 if (sa->sa_family == AF_INET6) { - ap->s_in6 = *(const struct sockaddr_in6 *)sa; + memcpy(&(ap->s_in6), sa, sizeof(struct sockaddr_in6)); return 1; } #endif #ifdef AF_UNIX if (sa->sa_family == AF_UNIX) { - ap->s_un = *(const struct sockaddr_un *)sa; + memcpy(&(ap->s_un), sa, sizeof(struct sockaddr_un)); return 1; } #endif -- 2.25.1