lib/socket: let query_iface_speed_from_name() initialize memory passed to syscalls
authorStefan Metzmacher <metze@samba.org>
Thu, 7 May 2020 09:06:03 +0000 (11:06 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 7 May 2020 14:44:39 +0000 (14:44 +0000)
I'm not sure if struct initializers would take care of padding,
so I use ZERO_STRUCT().

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
lib/socket/interfaces.c

index ac26b97c248d8eb4e60e2e81edae140e278c13ee..497bd945984799bea32062b251a8d377aec212a1 100644 (file)
@@ -149,6 +149,7 @@ static void query_iface_speed_from_name(const char *name, uint64_t *speed)
        strlcpy(ifr.ifr_name, name, IF_NAMESIZE);
 
        ifr.ifr_data = (void *)&edata;
+       ZERO_STRUCT(edata);
        edata.cmd = ETHTOOL_GLINK;
        ret = ioctl(fd, SIOCETHTOOL, &ifr);
        if (ret == -1) {
@@ -161,6 +162,7 @@ static void query_iface_speed_from_name(const char *name, uint64_t *speed)
        }
 
        ifr.ifr_data = (void *)&ecmd;
+       ZERO_STRUCT(ecmd);
        ecmd.cmd = ETHTOOL_GSET;
        ret = ioctl(fd, SIOCETHTOOL, &ifr);
        if (ret == -1) {