Skip to content

Commit

Permalink
net: mctp: purge receive queues on sk destruction
Browse files Browse the repository at this point in the history
We may have pending skbs in the receive queue when the sk is being
destroyed; add a destructor to purge the queue.

MCTP doesn't use the error queue, so only the receive_queue is purged.

Fixes: 833ef3b ("mctp: Populate socket implementation")
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Link: https://lore.kernel.org/r/20230126064551.464468-1-jk@codeconstruct.com.au
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jeremy Kerr authored and Jakub Kicinski committed Jan 28, 2023
1 parent 422ae7d commit 60bd1d9
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions net/mctp/af_mctp.c
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,11 @@ static void mctp_sk_unhash(struct sock *sk)
del_timer_sync(&msk->key_expiry);
}

static void mctp_sk_destruct(struct sock *sk)
{
skb_queue_purge(&sk->sk_receive_queue);
}

static struct proto mctp_proto = {
.name = "MCTP",
.owner = THIS_MODULE,
Expand Down Expand Up @@ -623,6 +628,7 @@ static int mctp_pf_create(struct net *net, struct socket *sock,
return -ENOMEM;

sock_init_data(sock, sk);
sk->sk_destruct = mctp_sk_destruct;

rc = 0;
if (sk->sk_prot->init)
Expand Down

0 comments on commit 60bd1d9

Please sign in to comment.