From 58d923e6ccc310a406a50fc079d81922ea5765c7 Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Mon, 8 Apr 2019 22:07:40 -0400 Subject: [PATCH] nvmf: add parameter check for Reservation Acquire command Nvmecli tool doesn't add parameter check when submitting to NVMf target, so we add additional check in NVMf target to prevent such cases. Change-Id: Ieb2b3b3c22d71913f2743a0f9cdad4aba184c320 Signed-off-by: Changpeng Liu Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450574 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: GangCao Reviewed-by: Ben Walker --- lib/nvmf/subsystem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 3c4d2c66d..e2fdcdd14 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -1561,7 +1561,7 @@ nvmf_ns_reservation_acquire(struct spdk_nvmf_ns *ns, "NRKEY 0x%"PRIx64", PRKEY 0x%"PRIx64"\n", racqa, iekey, rtype, key.crkey, key.prkey); - if (iekey) { + if (iekey || rtype > SPDK_NVME_RESERVE_EXCLUSIVE_ACCESS_ALL_REGS) { SPDK_ERRLOG("Ignore existing key field set to 1\n"); status = SPDK_NVME_SC_INVALID_FIELD; update_sgroup = false; @@ -1641,6 +1641,7 @@ nvmf_ns_reservation_acquire(struct spdk_nvmf_ns *ns, } break; default: + status = SPDK_NVME_SC_INVALID_FIELD; update_sgroup = false; break; }