mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 22:23:12 +00:00
zebra: Fix leaked sockets in rtadv.c
Coverity Scan #709790 In zebra/rtadv.c: rtadv_make_socket leaks socket for error cases. Added lines to close the socket for each error case or return. Signed-off-by: Morgan Stewart <morgan@cumulusnetworks.com> (cherry picked from commit 26b663da7ea8a3efae816d6e7fda293bdc1082f5)
This commit is contained in:
parent
6e9b0ac1a9
commit
a5c304ab35
@ -630,23 +630,41 @@ rtadv_make_socket (void)
|
||||
safe_strerror (errno) );
|
||||
|
||||
if (sock < 0)
|
||||
return -1;
|
||||
{
|
||||
close (sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = setsockopt_ipv6_pktinfo (sock, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
{
|
||||
close (sock);
|
||||
return ret;
|
||||
}
|
||||
ret = setsockopt_ipv6_multicast_loop (sock, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
{
|
||||
close (sock);
|
||||
return ret;
|
||||
}
|
||||
ret = setsockopt_ipv6_unicast_hops (sock, 255);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
{
|
||||
close (sock);
|
||||
return ret;
|
||||
}
|
||||
ret = setsockopt_ipv6_multicast_hops (sock, 255);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
{
|
||||
close (sock);
|
||||
return ret;
|
||||
}
|
||||
ret = setsockopt_ipv6_hoplimit (sock, 1);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
{
|
||||
close (sock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ICMP6_FILTER_SETBLOCKALL(&filter);
|
||||
ICMP6_FILTER_SETPASS (ND_ROUTER_SOLICIT, &filter);
|
||||
|
Loading…
Reference in New Issue
Block a user