mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
Bluetooth: Fix error code in chan_alloc_skb_cb()
[ Upstream commit 72d061ee630d0dbb45c2920d8d19b3861c413e54 ]
The chan_alloc_skb_cb() function is supposed to return error pointers on
error. Returning NULL will lead to a NULL dereference.
Fixes: 6b8d4a6a03 ("Bluetooth: 6LoWPAN: Use connected oriented channel instead of fixed one")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2c160e6868
commit
788ae2ae4c
@@ -825,11 +825,16 @@ static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan,
|
|||||||
unsigned long hdr_len,
|
unsigned long hdr_len,
|
||||||
unsigned long len, int nb)
|
unsigned long len, int nb)
|
||||||
{
|
{
|
||||||
|
struct sk_buff *skb;
|
||||||
|
|
||||||
/* Note that we must allocate using GFP_ATOMIC here as
|
/* Note that we must allocate using GFP_ATOMIC here as
|
||||||
* this function is called originally from netdev hard xmit
|
* this function is called originally from netdev hard xmit
|
||||||
* function in atomic context.
|
* function in atomic context.
|
||||||
*/
|
*/
|
||||||
return bt_skb_alloc(hdr_len + len, GFP_ATOMIC);
|
skb = bt_skb_alloc(hdr_len + len, GFP_ATOMIC);
|
||||||
|
if (!skb)
|
||||||
|
return ERR_PTR(-ENOMEM);
|
||||||
|
return skb;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void chan_suspend_cb(struct l2cap_chan *chan)
|
static void chan_suspend_cb(struct l2cap_chan *chan)
|
||||||
|
|||||||
Reference in New Issue
Block a user