Skip to content

Commit a2f77d6

Browse files
committed
mdns: check return value of inet_pton
Coverity: CID 739616 (#1 of 2): Unchecked return value (CHECKED_RETURN) At (8): Calling function "inet_pton(int, char const * restrict, void * restrict)" without checking return value (as is done elsewhere 23 out of 25 times). At (9): No check of the return value of "inet_pton(2, "224.0.0.2", &mc_settings.imr_multiaddr.s_addr)". CID 739616 (#2 of 2): Unchecked return value (CHECKED_RETURN) At (7): Calling function "inet_pton(int, char const * restrict, void * restrict)" without checking return value (as is done elsewhere 23 out of 25 times). At (8): No check of the return value of "inet_pton(10, "ff02::2", &mc6_settings.ipv6mr_multiaddr.__in6_u.__u6_addr8)". Signed-off-by: Ferry Huberts <[email protected]>
1 parent 5f8a9f0 commit a2f77d6

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/mdns/src/NetworkInterfaces.c

+10-2
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,13 @@ CreateRouterElectionSocket(const char *ifName)
271271
* ADD_MEMBERSHIP option must be called for each local interface over
272272
* which the multicast datagrams are to be received. */
273273
if (ipFamilySetting == AF_INET) {
274+
static const char * mc4Addr = "224.0.0.2";
274275
struct ip_mreq mc_settings;
275276
(void) memset(&mc_settings, 0, sizeof(mc_settings));
276-
inet_pton(AF_INET, "224.0.0.2", &mc_settings.imr_multiaddr.s_addr);
277+
if (inet_pton(AF_INET, mc4Addr, &mc_settings.imr_multiaddr.s_addr) != 1) {
278+
BmfPError("Could not convert ipv4 multicast address %s", mc4Addr);
279+
goto bail;
280+
}
277281
(void) memset(&req, 0, sizeof(struct ifreq));
278282
strncpy(req.ifr_name, ifName, IFNAMSIZ - 1);
279283
req.ifr_name[IFNAMSIZ -1] = '\0'; /* Ensure null termination */
@@ -291,9 +295,13 @@ CreateRouterElectionSocket(const char *ifName)
291295
goto bail;
292296
}
293297
} else {
298+
static const char * mc6Addr = "ff02::2";
294299
struct ipv6_mreq mc6_settings;
295300
(void) memset(&mc6_settings, 0, sizeof(mc6_settings));
296-
inet_pton(AF_INET6, "ff02::2", &mc6_settings.ipv6mr_multiaddr.s6_addr);
301+
if (inet_pton(AF_INET6, mc6Addr, &mc6_settings.ipv6mr_multiaddr.s6_addr) != 1) {
302+
BmfPError("Could not convert ipv6 multicast address %s", mc6Addr);
303+
goto bail;
304+
}
297305
mc6_settings.ipv6mr_interface = ifIndex;
298306
errno = 0;
299307
if (setsockopt(rxSocket, ipProtoSetting, ipAddMembershipSetting,

0 commit comments

Comments
 (0)