From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Fri, 6 Mar 2020 21:50:30 +0100 Subject: [PATCH] libmpathpersist: limit PRIN allocation length to 8192 bytes 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 Signed-off-by: Benjamin Marzinski --- 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.17.2