RE: [PATCH scsi-next] scsi: fnic: Fix use of uninitialized value in debug message

From: Karan Tilak Kumar (kartilak)
Date: Wed Jan 08 2025 - 00:19:48 EST


On Tuesday, January 7, 2025 9:09 PM, Dheeraj Reddy Jonnalagadda <dheeraj.linuxdev@xxxxxxxxx> wrote:
>
> The oxid variable in fdls_process_abts_req() was only being initialized
> inside the if (tport) block, but was being used in a debug print statement
> after that block. If tport was NULL, oxid would remain uninitialized.
> Move the oxid initialization to happen at declaration using
> FNIC_STD_GET_OX_ID(fchdr).
>
> Fixes: f828af44b8dd ("scsi: fnic: Add support for unsolicited requests and responses")
> Closes: https://scan7.scan.coverity.com/#/project-view/52337/11354?selectedIssue=1602772
> Signed-off-by: Dheeraj Reddy Jonnalagadda <dheeraj.linuxdev@xxxxxxxxx>
> ---
> drivers/scsi/fnic/fdls_disc.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/fnic/fdls_disc.c b/drivers/scsi/fnic/fdls_disc.c
> index 2534af2fff53..266d9f090772 100644
> --- a/drivers/scsi/fnic/fdls_disc.c
> +++ b/drivers/scsi/fnic/fdls_disc.c
> @@ -3904,7 +3904,7 @@ fdls_process_abts_req(struct fnic_iport_s *iport, struct fc_frame_header *fchdr)
> uint8_t *frame;
> struct fc_std_abts_ba_acc *pba_acc;
> uint32_t nport_id;
> - uint16_t oxid;
> + uint16_t oxid = FNIC_STD_GET_OX_ID(fchdr);
> struct fnic_tport_s *tport;
> struct fnic *fnic = iport->fnic;
> uint16_t frame_size = FNIC_ETH_FCOE_HDRS_OFFSET +
> @@ -3916,7 +3916,6 @@ fdls_process_abts_req(struct fnic_iport_s *iport, struct fc_frame_header *fchdr)
>
> tport = fnic_find_tport_by_fcid(iport, nport_id);
> if (tport) {
> - oxid = FNIC_STD_GET_OX_ID(fchdr);
> if (tport->active_oxid == oxid) {
> tport->flags |= FNIC_FDLS_TGT_ABORT_ISSUED;
> fdls_free_oxid(iport, oxid, &tport->active_oxid);
> --
> 2.34.1
>
>

Thanks for your change. The change looks good.

Reviewed-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>

Regards,
Karan