[PATCH 1/2] nvme-fc: avoid null pointer dereference

James Smart jsmart2021 at gmail.com
Fri Dec 2 08:07:48 PST 2022


On 11/30/2022 1:33 PM, Chaitanya Kulkarni wrote:
> Before using dynamically allcoated variable lsop in the
> nvme_fc_rcv_ls_req(), add a check for NULL and error out early.
> 
> Signed-off-by: Chaitanya Kulkarni <kch at nvidia.com>
> ---
>   drivers/nvme/host/fc.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
> index 489f5e797204..06bae7150087 100644
> --- a/drivers/nvme/host/fc.c
> +++ b/drivers/nvme/host/fc.c
> @@ -1754,9 +1754,18 @@ nvme_fc_rcv_ls_req(struct nvme_fc_remote_port *portptr,
>   	}
>   
>   	lsop = kzalloc(sizeof(*lsop), GFP_KERNEL);
> +	if (!lsop) {
> +		dev_info(lport->dev,
> +			"RCV %s LS failed: No memory\n",
> +			(w0->ls_cmd <= NVME_FC_LAST_LS_CMD_VALUE) ?
> +				nvmefc_ls_names[w0->ls_cmd] : "");
> +		ret = -ENOMEM;
> +		goto out_put;
> +	}
> +
>   	lsop->rqstbuf = kzalloc(sizeof(*lsop->rqstbuf), GFP_KERNEL);
>   	lsop->rspbuf = kzalloc(sizeof(*lsop->rspbuf), GFP_KERNEL);
> -	if (!lsop || !lsop->rqstbuf || !lsop->rspbuf) {
> +	if (!lsop->rqstbuf || !lsop->rspbuf) {
>   		dev_info(lport->dev,
>   			"RCV %s LS failed: No memory\n",
>   			(w0->ls_cmd <= NVME_FC_LAST_LS_CMD_VALUE) ?

Looks good

Reviewed-by: James Smart <jsmart2021 at gmail.com>

-- james




More information about the Linux-nvme mailing list