/* Check if the driver is whitelisted */
memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, ifa->ifa_name);
+ memset(ðc, 0, sizeof(ethc));
ifr.ifr_data = (caddr_t) ðc;
ethc.cmd = ETHTOOL_GDRVINFO;
if (ioctl(cfg->g_sock, SIOCETHTOOL, &ifr) == 0) {
static int
iface_set_filter(const char *name, int fd)
{
- const struct sock_fprog prog = {
- .filter = lldpd_filter_f,
- .len = sizeof(lldpd_filter_f) / sizeof(struct sock_filter)
- };
+ struct sock_fprog prog;
+ memset(&prog, 0, sizeof(struct sock_fprog));
+ prog.filter = lldpd_filter_f;
+ prog.len = sizeof(lldpd_filter_f) / sizeof(struct sock_filter);
+
if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER,
&prog, sizeof(prog)) < 0) {
LLOG_WARN("unable to change filter for %s", name);
ssize_t n;
memset(&msg, 0, sizeof(msg));
+ memset(&cmsgbuf.buf, 0, sizeof(cmsgbuf.buf));
if (fd >= 0) {
msg.msg_control = (caddr_t)&cmsgbuf.buf;