Patch "b43: fix a lower bounds test" has been added to the 4.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    b43: fix a lower bounds test

to the 4.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     b43-fix-a-lower-bounds-test.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8582f339d401cd73b3514aefab9251b1f30ecdc0
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date:   Wed Oct 6 10:36:22 2021 +0300

    b43: fix a lower bounds test
    
    [ Upstream commit 9b793db5fca44d01f72d3564a168171acf7c4076 ]
    
    The problem is that "channel" is an unsigned int, when it's less 5 the
    value of "channel - 5" is not a negative number as one would expect but
    is very high positive value instead.
    
    This means that "start" becomes a very high positive value.  The result
    of that is that we never enter the "for (i = start; i <= end; i++) {"
    loop.  Instead of storing the result from b43legacy_radio_aci_detect()
    it just uses zero.
    
    Fixes: ef1a628d83fc ("b43: Implement dynamic PHY API")
    Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
    Acked-by: Michael Büsch <m@xxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20211006073621.GE8404@kili
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/broadcom/b43/phy_g.c b/drivers/net/wireless/broadcom/b43/phy_g.c
index 822dcaa8ace63..35ff139b1496e 100644
--- a/drivers/net/wireless/broadcom/b43/phy_g.c
+++ b/drivers/net/wireless/broadcom/b43/phy_g.c
@@ -2310,7 +2310,7 @@ static u8 b43_gphy_aci_scan(struct b43_wldev *dev)
 	b43_phy_mask(dev, B43_PHY_G_CRS, 0x7FFF);
 	b43_set_all_gains(dev, 3, 8, 1);
 
-	start = (channel - 5 > 0) ? channel - 5 : 1;
+	start = (channel > 5) ? channel - 5 : 1;
 	end = (channel + 5 < 14) ? channel + 5 : 13;
 
 	for (i = start; i <= end; i++) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux