Browse Source

Get rid of a cast which increases the required alignment.

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1895 f882894a-f735-0410-b71e-b25c423dba1c
Holger Weiss 18 years ago
parent
commit
5da79db21a
1 changed files with 3 additions and 1 deletions
  1. 3 1
      plugins-root/check_icmp.c

+ 3 - 1
plugins-root/check_icmp.c

@@ -1139,12 +1139,14 @@ get_ip_address(const char *ifname)
 {
 #if defined(SIOCGIFADDR)
 	struct ifreq ifr;
+	struct sockaddr_in ip;
 
 	strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);
 	ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0';
 	if(ioctl(icmp_sock, SIOCGIFADDR, &ifr) == -1)
 		crash("Cannot determine IP address of interface %s", ifname);
-	return ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr;
+	memcpy(&ip, &ifr.ifr_addr, sizeof(ip));
+	return ip.sin_addr.s_addr;
 #else
 	errno = 0;
 	crash("Cannot get interface IP address on this platform.");