lkml.org 
[lkml]   [2021]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 073/125] scsi: libfc: Fix array index out of bound exception
    Date
    From: Javed Hasan <jhasan@marvell.com>

    [ Upstream commit b27c4577557045f1ab3cdfeabfc7f3cd24aca1fe ]

    Fix array index out of bound exception in fc_rport_prli_resp().

    Link: https://lore.kernel.org/r/20210615165939.24327-1-jhasan@marvell.com
    Signed-off-by: Javed Hasan <jhasan@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/libfc/fc_rport.c | 13 ++++++++-----
    1 file changed, 8 insertions(+), 5 deletions(-)

    diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
    index a60b228d13f1..f40edb0dab70 100644
    --- a/drivers/scsi/libfc/fc_rport.c
    +++ b/drivers/scsi/libfc/fc_rport.c
    @@ -1162,6 +1162,7 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
    resp_code = (pp->spp.spp_flags & FC_SPP_RESP_MASK);
    FC_RPORT_DBG(rdata, "PRLI spp_flags = 0x%x spp_type 0x%x\n",
    pp->spp.spp_flags, pp->spp.spp_type);
    +
    rdata->spp_type = pp->spp.spp_type;
    if (resp_code != FC_SPP_RESP_ACK) {
    if (resp_code == FC_SPP_RESP_CONF)
    @@ -1184,11 +1185,13 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
    /*
    * Call prli provider if we should act as a target
    */
    - prov = fc_passive_prov[rdata->spp_type];
    - if (prov) {
    - memset(&temp_spp, 0, sizeof(temp_spp));
    - prov->prli(rdata, pp->prli.prli_spp_len,
    - &pp->spp, &temp_spp);
    + if (rdata->spp_type < FC_FC4_PROV_SIZE) {
    + prov = fc_passive_prov[rdata->spp_type];
    + if (prov) {
    + memset(&temp_spp, 0, sizeof(temp_spp));
    + prov->prli(rdata, pp->prli.prli_spp_len,
    + &pp->spp, &temp_spp);
    + }
    }
    /*
    * Check if the image pair could be established
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-22 19:35    [W:4.067 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site