Bluetooth: btrtl: check for NULL in btrtl_set_quirks()
authorMax Chou <max.chou@realtek.com>
Tue, 21 Mar 2023 11:48:26 +0000 (19:48 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 May 2023 16:32:39 +0000 (17:32 +0100)
[ Upstream commit 253cf30e8d3d001850a95c4729d668f916b037ab ]

The btrtl_set_quirks() has accessed btrtl_dev->ic_info->lmp_subver since
b8e482d02513. However, if installing a Realtek Bluetooth controller
without the driver supported, it will hit the NULL point accessed.

Add a check for NULL to avoid the Kernel Oops.

Signed-off-by: Max Chou <max.chou@realtek.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/bluetooth/btrtl.c

index 6b3755345427a92927379cd8366fd4edaf76d14f..88f8c604d70a2bc5fc8c4d3a52dbb275f9a0a1d3 100644 (file)
@@ -882,6 +882,9 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
                break;
        }
 
+       if (!btrtl_dev->ic_info)
+               return;
+
        switch (btrtl_dev->ic_info->lmp_subver) {
        case RTL_ROM_LMP_8703B:
                /* 8723CS reports two pages for local ext features,