diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c index 6201965bd822f0cef1f8716c26e28e7bc915701d..1c572c8daced03951491d5b2da667f6992d5f835 100644 --- a/net/kcm/kcmsock.c +++ b/net/kcm/kcmsock.c @@ -1066,6 +1066,11 @@ static int kcm_sendmsg(struct socket *sock, struct msghdr *msg, size_t len) goto partial_message; } + if (skb_has_frag_list(head)) { + kfree_skb_list(skb_shinfo(head)->frag_list); + skb_shinfo(head)->frag_list = NULL; + } + if (head != kcm->seq_skb) kfree_skb(head);