From ca39902cee649b55fa0b7e01d2f85477d7d77448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Wed, 2 Apr 2025 10:04:36 +0200 Subject: [PATCH] bond-slb: initialize dest hw address in GARP packets Detected by Coverity: 1. NetworkManager-1.53.1/src/core/nm-bond-manager.c:885:5: var_decl: Declaring variable "data" without initializer. 7. NetworkManager-1.53.1/src/core/nm-bond-manager.c:948:13: uninit_use_in_call: Using uninitialized value "data". Field "data.d_hw_addr" is uninitialized when calling "sendto". 946| unaligned_write_ne32(data.s_ip_addr, tmp_addr); 947| unaligned_write_ne32(data.d_ip_addr, tmp_addr); 948|-> if (sendto(sockfd, &data, sizeof(data), 0, (struct sockaddr *) &addr, sizeof(addr)) < 0) 949| return FALSE; 950| } Fixes: 3f2f922dd943 ('bonding: send ARP announcement on bonding-slb link/carrier down') (cherry picked from commit 42edb37499fdf848ec751b059a361fd37eab69d5) --- src/core/nm-bond-manager.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/nm-bond-manager.c b/src/core/nm-bond-manager.c index 2f7fe36c16..116cb73744 100644 --- a/src/core/nm-bond-manager.c +++ b/src/core/nm-bond-manager.c @@ -882,7 +882,7 @@ nm_bond_manager_send_arp(int bond_ifindex, .sll_protocol = htons(ETH_P_ARP), .sll_ifindex = bond_ifindex, }; - ARPPacket data; + ARPPacket data = {0}; const guint8 *hwaddr; gsize hwaddrlen = 0; nm_auto_close int sockfd = -1; @@ -940,6 +940,7 @@ nm_bond_manager_send_arp(int bond_ifindex, data.op = htons(ARP_OP_GARP); memcpy(data.s_addr, hwaddr, hwaddrlen); memcpy(data.s_hw_addr, hwaddr, hwaddrlen); + memset(data.d_hw_addr, 0xff, ETH_ALEN); for (int i = 0; i < addrs_len; i++) { const in_addr_t tmp_addr = addrs_array[i];