brcm80211: Avoid possible null-pointer dereferences in wlc_phy_radio_init_2056()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Mon, 29 Jul 2019 09:56:52 +0000 (17:56 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 3 Sep 2019 13:37:22 +0000 (16:37 +0300)
In wlc_phy_radio_init_2056(), regs_SYN_2056_ptr, regs_TX_2056_ptr and
regs_RX_2056_ptr may be not assigned, and thus they are still NULL.
Then, they are used on lines 20042-20050:
    wlc_phy_init_radio_regs(pi, regs_SYN_2056_ptr, (u16) RADIO_2056_SYN);
wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX0);
wlc_phy_init_radio_regs(pi, regs_TX_2056_ptr, (u16) RADIO_2056_TX1);
wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX0);
wlc_phy_init_radio_regs(pi, regs_RX_2056_ptr, (u16) RADIO_2056_RX1);

Thus, possible null-pointer dereferences may occur.

To avoid these bugs, when these variables are not assigned,
wlc_phy_radio_init_2056() directly returns.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c

index 07f61d6155ea66fd952321ea5db3883d411d97b6..0c57d48f47b10ad641357c3a06c41fe435c835ac 100644 (file)
@@ -20035,7 +20035,7 @@ static void wlc_phy_radio_init_2056(struct brcms_phy *pi)
                        break;
 
                default:
-                       break;
+                       return;
                }
        }