summaryrefslogtreecommitdiff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-08 12:24:53 +0400
committerMarcel Holtmann <marcel@holtmann.org>2014-11-08 22:29:35 +0300
commitb0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89 (patch)
treed87c983453f86c5a95472417e68faf269aec6a0e /net/bluetooth
parentcb77c3ec075a50e9f956f62dc2e4c0394df1d578 (diff)
downloadlinux-b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89.tar.xz
Bluetooth: 6lowpan: fix skb_unshare behaviour
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> Cc: stable@vger.kernel.org # 3.18.x
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/6lowpan.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index dc23c55f1ab6..3f20dce9d671 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -614,17 +614,13 @@ static netdev_tx_t bt_xmit(struct sk_buff *skb, struct net_device *netdev)
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