cf-socket: tweak a memcpy() to read better
No binary (build failed)
—
(log yok)
| @@ -333,12 +333,11 @@ static CURLcode sock_assign_addr(struct Curl_sockaddr_ex *dest, | |
| } | |
| dest->addrlen = (unsigned int)ai->ai_addrlen; | |
| - | if(dest->addrlen > sizeof(struct Curl_sockaddr_storage)) { |
| - | DEBUGASSERT(0); |
| + | DEBUGASSERT(dest->addrlen <= sizeof(dest->curl_sa_addrbuf)); |
| + | if(dest->addrlen > sizeof(dest->curl_sa_addrbuf)) |
| return CURLE_TOO_LARGE; | |
| - | } |
| - | memcpy(&dest->curl_sa_addr, ai->ai_addr, dest->addrlen); |
| + | memcpy(&dest->curl_sa_addrbuf, ai->ai_addr, dest->addrlen); |
| return CURLE_OK; | |
| } | |
| @@ -48,11 +48,12 @@ struct Curl_sockaddr_ex { | |
| int protocol; | |
| unsigned int addrlen; | |
| union { | |
| - | struct sockaddr addr; |
| - | struct Curl_sockaddr_storage buff; |
| - | } _sa_ex_u; |
| + | struct sockaddr sa; |
| + | struct Curl_sockaddr_storage buf; |
| + | } addr; |
| }; | |
| - | #define curl_sa_addr _sa_ex_u.addr |
| + | #define curl_sa_addr addr.sa |
| + | #define curl_sa_addrbuf addr.buf |
| /* | |
| * Parse interface option, and return the interface name and the host part. | |