| From | Greg Kroah-Hartman <> | Subject | [PATCH 3.18 032/150] Bluetooth: 6lowpan: fix skb_unshare behaviour | Date | Tue, 13 Jan 2015 23:21:43 -0800 |
| |
3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexander Aring <alex.aring@gmail.com>
commit b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89 upstream.
This patch reverts commit:
a7807d73 ("Bluetooth: 6lowpan: Avoid memory leak if memory allocation fails")
which was wrong suggested by Alexander Aring. The function skb_unshare run also kfree_skb on failure.
Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- net/bluetooth/6lowpan.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
--- a/net/bluetooth/6lowpan.c +++ b/net/bluetooth/6lowpan.c @@ -591,17 +591,13 @@ static netdev_tx_t bt_xmit(struct sk_buf int err = 0; bdaddr_t addr; u8 addr_type; - struct sk_buff *tmpskb; /* We must take a copy of the skb before we modify/replace the ipv6 * header as the header could be used elsewhere */ - tmpskb = skb_unshare(skb, GFP_ATOMIC); - if (!tmpskb) { - kfree_skb(skb); + skb = skb_unshare(skb, GFP_ATOMIC); + if (!skb) return NET_XMIT_DROP; - } - skb = tmpskb; /* Return values from setup_header() * <0 - error, packet is dropped
|