]> www.infradead.org Git - users/hch/misc.git/commitdiff
Bluetooth: Fix error code in chan_alloc_skb_cb()
authorDan Carpenter <dan.carpenter@linaro.org>
Mon, 10 Mar 2025 19:46:56 +0000 (22:46 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 13 Mar 2025 20:40:17 +0000 (16:40 -0400)
The chan_alloc_skb_cb() function is supposed to return error pointers on
error.  Returning NULL will lead to a NULL dereference.

Fixes: 6b8d4a6a0314 ("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>
net/bluetooth/6lowpan.c

index 50cfec8ccac4f789fc1d4970878640dcbd8a4fac..3c29778171c5814157e674ef53a7fb31b1e761cd 100644 (file)
@@ -825,11 +825,16 @@ static struct sk_buff *chan_alloc_skb_cb(struct l2cap_chan *chan,
                                         unsigned long hdr_len,
                                         unsigned long len, int nb)
 {
+       struct sk_buff *skb;
+
        /* Note that we must allocate using GFP_ATOMIC here as
         * this function is called originally from netdev hard xmit
         * 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)