From 5f3286f7f4129e2833b8c5f54665a267509cb3c3 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Wed, 17 Feb 2016 06:08:46 +0100 Subject: [PATCH] Fix strict aliasing issues --- src/XrdSys/XrdSysDNS.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/XrdSys/XrdSysDNS.cc b/src/XrdSys/XrdSysDNS.cc index 0dd105924e0..e36e99a3b0b 100644 --- a/src/XrdSys/XrdSysDNS.cc +++ b/src/XrdSys/XrdSysDNS.cc @@ -184,7 +184,8 @@ int XrdSysDNS::getAddrName(const char *InetName, // The name char *names[1] = {0}; - int hn = getHostName((struct sockaddr &)ip[i], names, 1, errtxt); + struct sockaddr *ipaddr = (struct sockaddr *)&ip[i]; + int hn = getHostName(*ipaddr, names, 1, errtxt); if (hn) Name[i] = strdup(names[0]); else @@ -519,7 +520,8 @@ int XrdSysDNS::Host2Dest(const char *hostname, // Convert hostname to an ip address // - if (!getHostAddr(hbuff, (struct sockaddr &)InetAddr, errtxt)) return 0; + struct sockaddr *ip = (struct sockaddr *)&InetAddr; + if (!getHostAddr(hbuff, *ip, errtxt)) return 0; // Insert port number in address // @@ -547,7 +549,8 @@ int XrdSysDNS::Host2IP(const char *hname, unsigned int *ipaddr) // Convert hostname to an ascii ip address // - if (!getHostAddr(hname, (struct sockaddr &)InetAddr)) return 0; + struct sockaddr *ip = (struct sockaddr *)&InetAddr; + if (!getHostAddr(hname, *ip)) return 0; if (ipaddr) memcpy(ipaddr, &InetAddr.sin_addr, sizeof(unsigned int)); return 1; }