[PATCH] lib: fwts_hwinfo: clean up type punning, fixes warning with gcc-6

Colin King colin.king at canonical.com
Wed Jan 13 16:09:20 UTC 2016


From: Colin Ian King <colin.king at canonical.com>

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/src/fwts_hwinfo.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/src/fwts_hwinfo.c b/src/lib/src/fwts_hwinfo.c
index 6a0a9aa..e8f7c05 100644
--- a/src/lib/src/fwts_hwinfo.c
+++ b/src/lib/src/fwts_hwinfo.c
@@ -381,7 +381,7 @@ static int fwts_hwinfo_net_get(
 
 	while ((d = readdir(dp)) != NULL) {
 		struct ifreq buf;
-		struct in_addr in_addr;
+		struct sockaddr_in *sockaddr;
 		fwts_net_config *net_config;
 
 		if (d->d_name[0] == '.')
@@ -416,8 +416,8 @@ static int fwts_hwinfo_net_get(
 				fwts_log_error(fw, "Cannot get address for device %s.", d->d_name);
 		}
 		/* GCC 4.4 is rather overly pedantic in strict aliasing warnings, this avoids it */
-		in_addr = (struct in_addr)((struct sockaddr_in *)&buf.ifr_addr)->sin_addr;
-		net_config->addr = strdup(inet_ntoa(in_addr));
+		sockaddr = (struct sockaddr_in *)&buf.ifr_addr;
+		net_config->addr = strdup(inet_ntoa((struct in_addr)sockaddr->sin_addr));
 		if (net_config->addr == NULL) {
 			fwts_log_error(fw, "Cannot allocate net config H/W address.");
 			fwts_hwinfo_net_free(net_config);
-- 
2.7.0.rc3




More information about the fwts-devel mailing list