@@ -6888,16 +6888,17 @@ + (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr fromAddress:(NSDat
6888
6888
{
6889
6889
if ([address length ] >= sizeof (struct sockaddr))
6890
6890
{
6891
- const struct sockaddr *sockaddrX = ( const struct sockaddr *) [address bytes ];
6891
+ const struct sockaddr *sockaddrX = [address bytes ];
6892
6892
6893
6893
if (sockaddrX->sa_family == AF_INET)
6894
6894
{
6895
6895
if ([address length ] >= sizeof (struct sockaddr_in))
6896
6896
{
6897
- const struct sockaddr_in *sockaddr4 = (const struct sockaddr_in *)sockaddrX;
6897
+ struct sockaddr_in sockaddr4;
6898
+ memcpy (&sockaddr4, sockaddrX, sizeof (sockaddr4));
6898
6899
6899
- if (hostPtr) *hostPtr = [self hostFromSockaddr4: sockaddr4];
6900
- if (portPtr) *portPtr = [self portFromSockaddr4: sockaddr4];
6900
+ if (hostPtr) *hostPtr = [self hostFromSockaddr4: & sockaddr4];
6901
+ if (portPtr) *portPtr = [self portFromSockaddr4: & sockaddr4];
6901
6902
6902
6903
return YES ;
6903
6904
}
@@ -6906,10 +6907,11 @@ + (BOOL)getHost:(NSString **)hostPtr port:(uint16_t *)portPtr fromAddress:(NSDat
6906
6907
{
6907
6908
if ([address length ] >= sizeof (struct sockaddr_in6))
6908
6909
{
6909
- const struct sockaddr_in6 *sockaddr6 = (const struct sockaddr_in6 *)sockaddrX;
6910
+ struct sockaddr_in6 sockaddr6;
6911
+ memcpy (&sockaddr6, sockaddrX, sizeof (sockaddr6));
6910
6912
6911
- if (hostPtr) *hostPtr = [self hostFromSockaddr6: sockaddr6];
6912
- if (portPtr) *portPtr = [self portFromSockaddr6: sockaddr6];
6913
+ if (hostPtr) *hostPtr = [self hostFromSockaddr6: & sockaddr6];
6914
+ if (portPtr) *portPtr = [self portFromSockaddr6: & sockaddr6];
6913
6915
6914
6916
return YES ;
6915
6917
}
0 commit comments