Skip to content

Commit

Permalink
ipv6: sctp: implement sctp_v6_destroy_sock()
Browse files Browse the repository at this point in the history
[ Upstream commit 602dd62 ]

Dmitry Vyukov reported a memory leak using IPV6 SCTP sockets.

We need to call inet6_destroy_sock() to properly release
inet6 specific fields.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
  • Loading branch information
Eric Dumazet authored and Sasha Levin committed Dec 14, 2015
1 parent 18c103a commit 1ced235
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion net/sctp/socket.c
Original file line number Diff line number Diff line change
@@ -7393,6 +7393,13 @@ struct proto sctp_prot = {

#if IS_ENABLED(CONFIG_IPV6)

#include <net/transp_v6.h>
static void sctp_v6_destroy_sock(struct sock *sk)
{
sctp_destroy_sock(sk);
inet6_destroy_sock(sk);
}

struct proto sctpv6_prot = {
.name = "SCTPv6",
.owner = THIS_MODULE,
@@ -7402,7 +7409,7 @@ struct proto sctpv6_prot = {
.accept = sctp_accept,
.ioctl = sctp_ioctl,
.init = sctp_init_sock,
.destroy = sctp_destroy_sock,
.destroy = sctp_v6_destroy_sock,
.shutdown = sctp_shutdown,
.setsockopt = sctp_setsockopt,
.getsockopt = sctp_getsockopt,

0 comments on commit 1ced235

Please sign in to comment.