lkml.org 
[lkml]   [2021]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 366/601] scsi: pm80xx: Fix potential infinite loop
    Date
    From: Colin Ian King <colin.king@canonical.com>

    [ Upstream commit 40fa7394a1ad5706e795823276f2e394cca145d0 ]

    The for-loop iterates with a u8 loop counter i and compares this with the
    loop upper limit of pm8001_ha->max_q_num which is a u32 type. There is a
    potential infinite loop if pm8001_ha->max_q_num is larger than the u8 loop
    counter. Fix this by making the loop counter the same type as
    pm8001_ha->max_q_num.

    [mkp: this is purely theoretical, max_q_num is currently limited to 64]

    Link: https://lore.kernel.org/r/20210407135840.494747-1-colin.king@canonical.com
    Fixes: 65df7d1986a1 ("scsi: pm80xx: Fix chip initialization failure")
    Addresses-Coverity: ("Infinite loop")
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/pm8001/pm8001_hwi.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
    index 6fa739c92beb..a28813d2683a 100644
    --- a/drivers/scsi/pm8001/pm8001_hwi.c
    +++ b/drivers/scsi/pm8001/pm8001_hwi.c
    @@ -643,7 +643,7 @@ static void init_pci_device_addresses(struct pm8001_hba_info *pm8001_ha)
    */
    static int pm8001_chip_init(struct pm8001_hba_info *pm8001_ha)
    {
    - u8 i = 0;
    + u32 i = 0;
    u16 deviceid;
    pci_read_config_word(pm8001_ha->pdev, PCI_DEVICE_ID, &deviceid);
    /* 8081 controllers need BAR shift to access MPI space
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-12 20:02    [W:2.965 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site