diff options
| author | 2014-10-08 10:24:53 +0200 | |
|---|---|---|
| committer | 2014-11-08 20:29:35 +0100 | |
| commit | b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89 (patch) | |
| tree | d87c983453f86c5a95472417e68faf269aec6a0e | |
| parent | Bluetooth: Send mgmt_connected only if state is BT_CONFIG (diff) | |
| download | linux-dev-b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89.tar.xz linux-dev-b0c42cd7b210efc74aa4bfc3e39a2814dfaa9b89.zip | |
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
| -rw-r--r-- | net/bluetooth/6lowpan.c | 8 |
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 |
