33 lines
1.3 KiB
Diff
33 lines
1.3 KiB
Diff
|
From 467b621fb7da6e1318ac7204325b0adb01b3ff19 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||
|
Date: Fri, 3 Sep 2021 16:48:50 +0200
|
||
|
Subject: [PATCH 07/15] Retry dhcp6 ping on interrupts
|
||
|
|
||
|
Error: CHECKED_RETURN (CWE-252): [#def35]
|
||
|
dnsmasq-2.86test7/src/dhcp6.c:295: check_return: Calling "sendto(dnsmasq_daemon->icmp6fd, &neigh, 24UL, 0, __CONST_SOCKADDR_ARG({.__sockaddr__ = &addr.sa}), 28U)" without checking return value. This library function may fail and return an error code.
|
||
|
# 293| break;
|
||
|
# 294|
|
||
|
# 295|-> sendto(daemon->icmp6fd, &neigh, sizeof(neigh), 0, &addr.sa, sizeof(addr));
|
||
|
# 296|
|
||
|
# 297| ts.tv_sec = 0;
|
||
|
---
|
||
|
src/dhcp6.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/dhcp6.c b/src/dhcp6.c
|
||
|
index 2be877f..ae1f5c1 100644
|
||
|
--- a/src/dhcp6.c
|
||
|
+++ b/src/dhcp6.c
|
||
|
@@ -292,7 +292,7 @@ void get_client_mac(struct in6_addr *client, int iface, unsigned char *mac, unsi
|
||
|
if ((maclen = find_mac(&addr, mac, 0, now)) != 0)
|
||
|
break;
|
||
|
|
||
|
- sendto(daemon->icmp6fd, &neigh, sizeof(neigh), 0, &addr.sa, sizeof(addr));
|
||
|
+ while(retry_send(sendto(daemon->icmp6fd, &neigh, sizeof(neigh), 0, &addr.sa, sizeof(addr))));
|
||
|
|
||
|
ts.tv_sec = 0;
|
||
|
ts.tv_nsec = 100000000; /* 100ms */
|
||
|
--
|
||
|
2.31.1
|
||
|
|