]> www.infradead.org Git - users/hch/configfs.git/commitdiff
Bluetooth: l2cap: always unlock channel in l2cap_conless_channel()
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 31 Jul 2024 09:19:36 +0000 (12:19 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Wed, 7 Aug 2024 20:35:56 +0000 (16:35 -0400)
Add missing call to 'l2cap_chan_unlock()' on receive error handling
path in 'l2cap_conless_channel()'.

Fixes: a24cce144b98 ("Bluetooth: Fix reference counting of global L2CAP channels")
Reported-by: syzbot+45ac74737e866894acb0@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=45ac74737e866894acb0
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/l2cap_core.c

index c3c26bbb5ddaebd2c4faa0da887774a32688b71c..9988ba382b686ad8a59c72dcf65749138af0afb5 100644 (file)
@@ -6774,6 +6774,7 @@ static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm,
        bt_cb(skb)->l2cap.psm = psm;
 
        if (!chan->ops->recv(chan, skb)) {
+               l2cap_chan_unlock(chan);
                l2cap_chan_put(chan);
                return;
        }