udhcpc[6]: initialize entire sockaddr_ll
I see random field values like sll_hatype=0x267 when I strace.
They seem to not matter, but just in case they sometimes do,
let's at least have deterministic values (via memset(0)).
function old new delta
change_listen_mode 308 322 +14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index 714555f..d4bb350 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -881,9 +881,14 @@
fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IPV6));
log2("got raw socket fd %d", fd);
+ memset(&sock, 0, sizeof(sock)); /* let's be deterministic */
sock.sll_family = AF_PACKET;
sock.sll_protocol = htons(ETH_P_IPV6);
sock.sll_ifindex = ifindex;
+ /*sock.sll_hatype = ARPHRD_???;*/
+ /*sock.sll_pkttype = PACKET_???;*/
+ /*sock.sll_halen = ???;*/
+ /*sock.sll_addr[8] = ???;*/
xbind(fd, (struct sockaddr *) &sock, sizeof(sock));
#if 0
diff --git a/networking/udhcp/d6_packet.c b/networking/udhcp/d6_packet.c
index 79a0ac8..a0656c1 100644
--- a/networking/udhcp/d6_packet.c
+++ b/networking/udhcp/d6_packet.c
@@ -75,6 +75,8 @@
dest_sll.sll_family = AF_PACKET;
dest_sll.sll_protocol = htons(ETH_P_IPV6);
dest_sll.sll_ifindex = ifindex;
+ /*dest_sll.sll_hatype = ARPHRD_???;*/
+ /*dest_sll.sll_pkttype = PACKET_???;*/
dest_sll.sll_halen = 6;
memcpy(dest_sll.sll_addr, dest_arp, 6);
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 99d91bf..6c74996 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1010,9 +1010,14 @@
*/
log2("got raw socket fd");
+ memset(&sock, 0, sizeof(sock)); /* let's be deterministic */
sock.sll_family = AF_PACKET;
sock.sll_protocol = htons(ETH_P_IP);
sock.sll_ifindex = ifindex;
+ /*sock.sll_hatype = ARPHRD_???;*/
+ /*sock.sll_pkttype = PACKET_???;*/
+ /*sock.sll_halen = ???;*/
+ /*sock.sll_addr[8] = ???;*/
xbind(fd, (struct sockaddr *) &sock, sizeof(sock));
#if 0 /* Several users reported breakage when BPF filter is used */
diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c
index 9e1b46d..44d9cee 100644
--- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c
@@ -129,6 +129,8 @@
dest_sll.sll_family = AF_PACKET;
dest_sll.sll_protocol = htons(ETH_P_IP);
dest_sll.sll_ifindex = ifindex;
+ /*dest_sll.sll_hatype = ARPHRD_???;*/
+ /*dest_sll.sll_pkttype = PACKET_???;*/
dest_sll.sll_halen = 6;
memcpy(dest_sll.sll_addr, dest_arp, 6);