aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-02-21 22:46:26 -0500
committerDavid S. Miller <davem@davemloft.net>2016-02-21 22:46:26 -0500
commit9ca69b705486a6fd5c3ecf0558b2203c376ec048 (patch)
tree862474f29f9899888801f4dc015cf425aa961892
parentb5a099c67a1c36b91356624ce86eb3f9f48a82c7 (diff)
parent3bd7594e69bd97c962faa6a5ae15dd8c6c082636 (diff)
Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Johan Hedberg says: ==================== pull request: bluetooth 2016-02-20 Here's an important patch for 4.5 which fixes potential invalid pointer access when processing completed Bluetooth HCI commands. Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/bluetooth/hci_core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 47bcef754796..883c821a9e78 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -4112,8 +4112,10 @@ void hci_req_cmd_complete(struct hci_dev *hdev, u16 opcode, u8 status,
4112 break; 4112 break;
4113 } 4113 }
4114 4114
4115 *req_complete = bt_cb(skb)->hci.req_complete; 4115 if (bt_cb(skb)->hci.req_flags & HCI_REQ_SKB)
4116 *req_complete_skb = bt_cb(skb)->hci.req_complete_skb; 4116 *req_complete_skb = bt_cb(skb)->hci.req_complete_skb;
4117 else
4118 *req_complete = bt_cb(skb)->hci.req_complete;
4117 kfree_skb(skb); 4119 kfree_skb(skb);
4118 } 4120 }
4119 spin_unlock_irqrestore(&hdev->cmd_q.lock, flags); 4121 spin_unlock_irqrestore(&hdev->cmd_q.lock, flags);