Patch "connector: bump skb->users before callback invocation" has been added to the 4.1-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
connector: bump skb->users before callback invocation
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
connector-bump-skb-users-before-callback-invocation.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Tue Jan 26 21:37:04 PST 2016
From: Florian Westphal <[email protected]>
Date: Thu, 31 Dec 2015 14:26:33 +0100
Subject: connector: bump skb->users before callback invocation
From: Florian Westphal <[email protected]>
[ Upstream commit 55285bf09427c5abf43ee1d54e892f352092b1f1 ]
Dmitry reports memleak with syskaller program.
Problem is that connector bumps skb usecount but might not invoke callback.
So move skb_get to where we invoke the callback.
--- drivers/connector/connector.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
drivers/connector/connector.c +3 -8
@@ -178,26 +178,21 @@ static int cn_call_callback(struct sk_bu* * It checks skb, netlink header and msg sizes, and calls callback helper. */ -static void cn_rx_skb (struct sk_buff *__skb) +static void cn_rx_skb (struct sk_buff *skb) {struct nlmsghdr *nlh; -struct sk_buff *skb;int len, err; - skb =skb_get (__skb); -if (skb->len >=NLMSG_HDRLEN ) { nlh =nlmsg_hdr (skb); len =nlmsg_len (nlh);if (len < (int )sizeof (struct cn_msg ) || skb->len < nlh->nlmsg_len || - len >CONNECTOR_MAX_MSG_SIZE ) { -kfree_skb (skb); + len >CONNECTOR_MAX_MSG_SIZE )return ; - } - err =cn_call_callback (skb); + err =cn_call_callback (skb_get (skb));if (err <0 )kfree_skb (skb); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/connector-bump-skb-users-before-callback-invocation.patch