[dm-devel] [PATCH 1/4] libmpathpersist: limit PRIN allocation length to 8192 bytes

Benjamin Marzinski bmarzins at redhat.com
Sat Mar 14 23:14:15 UTC 2020


On Sat, Mar 07, 2020 at 12:06:02AM +0100, mwilck at suse.com wrote:
> From: Martin Wilck <mwilck at suse.com>
> 
> Some targets (notably the qemu-pr-helper) don't support PERSISTENT
> RESERVE IN  commands with more than 8192 bytes allocation length.
> While I have found no explicit requirement in the SCSI specs that
> the allocation lengh may not exceed 8k, an 8k limit is also enforced
> by sg_persist(8), and actually by mpathpersist itself for the
> --allocation-length option, but not for the auto-determined length.
> 
> Fix that.
> 
Reviewed-by: Benjamin Marzinski <bmarzins at redhat.com>
> Signed-off-by: Martin Wilck <mwilck at suse.com>
> ---
>  libmpathpersist/mpath_pr_ioctl.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/libmpathpersist/mpath_pr_ioctl.c b/libmpathpersist/mpath_pr_ioctl.c
> index 74b26b0c..1a28cba7 100644
> --- a/libmpathpersist/mpath_pr_ioctl.c
> +++ b/libmpathpersist/mpath_pr_ioctl.c
> @@ -543,5 +543,7 @@ int get_prin_length(int rq_servact)
>  			mx_resp_len = 0;
>  			break;
>  	}
> +	if (mx_resp_len > MPATH_MAX_PARAM_LEN)
> +		mx_resp_len = MPATH_MAX_PARAM_LEN;
>  	return mx_resp_len;
>  }
> -- 
> 2.25.1




More information about the dm-devel mailing list