Cong Wang
da34873e8f
ipv6: fix memory leaks on IPV6_ADDRFORM path
...
[ Upstream commit 8c0de6e96c ]
IPV6_ADDRFORM causes resource leaks when converting an IPv6 socket
to IPv4, particularly struct ipv6_ac_socklist. Similar to
struct ipv6_mc_socklist, we should just close it on this path.
This bug can be easily reproduced with the following C program:
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main()
{
int s, value;
struct sockaddr_in6 addr;
struct ipv6_mreq m6;
s = socket(AF_INET6, SOCK_DGRAM, 0);
addr.sin6_family = AF_INET6;
addr.sin6_port = htons(5000);
inet_pton(AF_INET6, "::ffff:192.168.122.194", &addr.sin6_addr);
connect(s, (struct sockaddr *)&addr, sizeof(addr));
inet_pton(AF_INET6, "fe80::AAAA", &m6.ipv6mr_multiaddr);
m6.ipv6mr_interface = 5;
setsockopt(s, SOL_IPV6, IPV6_JOIN_ANYCAST, &m6, sizeof(m6));
value = AF_INET;
setsockopt(s, SOL_IPV6, IPV6_ADDRFORM, &value, sizeof(value));
close(s);
return 0;
}
Reported-by: ch3332xr@gmail.com
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-08-21 09:48:00 +02:00
..
2019-06-25 11:36:54 +08:00
2019-05-08 07:20:45 +02:00
2017-11-02 11:10:55 +01:00
2020-05-20 08:17:09 +02:00
2019-06-17 19:52:44 +02:00
2019-05-16 19:42:32 +02:00
2019-03-23 14:35:16 +01:00
2020-06-30 15:37:59 -04:00
2019-05-04 09:15:20 +02:00
2020-06-03 08:17:33 +02:00
2020-08-21 09:48:00 +02:00
2017-08-29 10:55:20 +01:00
2017-11-02 11:10:55 +01:00
2019-08-04 09:31:59 +02:00
2017-11-02 11:10:55 +01:00
2019-06-11 12:21:51 +02:00
2017-11-02 11:10:55 +01:00
2019-02-23 09:06:44 +01:00
2019-11-12 19:17:46 +01:00
2019-11-10 11:25:24 +01:00
2020-02-05 14:18:21 +00:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-08-31 14:42:19 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-09-05 11:53:34 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-01-04 14:00:14 +01:00
2020-07-22 09:22:20 +02:00
2017-08-22 14:29:30 -07:00
2017-11-02 11:10:55 +01:00
2017-09-01 20:33:42 -07:00
2020-03-20 10:54:10 +01:00
2017-11-02 11:10:55 +01:00
2020-03-11 18:02:48 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-11-10 11:25:37 +01:00
2019-11-10 11:25:37 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-07-22 09:22:19 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-03-13 14:03:09 -07:00
2018-04-29 11:33:13 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-04-27 09:35:40 +02:00
2020-01-04 14:00:19 +01:00
2018-10-18 09:16:21 +02:00
2018-05-16 10:10:24 +02:00
2019-02-23 09:06:42 +01:00
2019-06-11 12:21:47 +02:00
2020-04-24 08:00:53 +02:00
2019-07-21 09:04:28 +02:00
2019-01-31 08:13:42 +01:00
2017-11-02 11:10:55 +01:00
2019-11-12 19:18:38 +01:00
2019-12-21 10:47:38 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-09-16 08:20:44 +02:00
2020-05-20 08:17:02 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-02-06 17:31:33 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-11-06 12:43:36 +01:00
2019-11-20 17:59:59 +01:00
2017-11-02 11:10:55 +01:00
2018-05-30 07:51:58 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-01-09 10:17:59 +01:00
2019-04-17 08:37:50 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-05-16 10:10:23 +02:00
2017-08-29 15:16:52 -07:00
2017-11-02 11:10:55 +01:00
2017-11-09 10:03:09 +09:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-10-01 03:55:47 +01:00
2019-09-10 10:32:21 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-02-25 11:07:59 +01:00
2018-05-30 07:52:01 +02:00
2020-01-27 14:46:50 +01:00
2017-11-02 11:10:55 +01:00
2018-05-30 07:52:14 +02:00
2017-11-02 11:10:55 +01:00
2019-11-06 12:43:39 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-08-25 17:10:23 -07:00
2018-04-19 08:56:16 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-06-30 15:38:00 -04:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-10-25 10:37:11 +09:00
2020-05-02 17:24:17 +02:00
2018-12-05 19:41:10 +01:00
2018-06-26 08:06:28 +08:00
2017-11-02 11:10:55 +01:00
2017-08-29 15:16:52 -07:00
2017-11-02 11:10:55 +01:00
2018-06-26 08:06:28 +08:00
2018-03-08 22:41:10 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-09-16 08:20:44 +02:00