mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
nvmet-auth: take only AUTH_Negotiate for a negotiation
nvmet_execute_auth_send() hands a common-type message to
nvmet_auth_negotiate() if its ID is AUTH_Negotiate or matches the step
the queue is in. The second case is wrong: the only other common-type
message a host sends is AUTH_Failure2, and no queue waits in that step.
A host can name the step on purpose though, and its message is then
treated as a new AUTH_Negotiate without the work that goes with a new
transaction, like reloading the keys on the admin queue.
Fail every other common-type message, as AUTH_Failure2 already is.
Fixes: db1312dd95 ("nvmet: implement basic In-Band Authentication")
Cc: Hannes Reinecke <hare@suse.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
424bd0e98c
commit
7dd1d31e2e
|
|
@ -345,8 +345,9 @@ void nvmet_execute_auth_send(struct nvmet_req *req)
|
|||
}
|
||||
req->sq->dhchap_step =
|
||||
NVME_AUTH_DHCHAP_MESSAGE_NEGOTIATE;
|
||||
} else if (data->auth_id != req->sq->dhchap_step)
|
||||
} else {
|
||||
goto done_failure1;
|
||||
}
|
||||
/* Validate negotiation parameters */
|
||||
dhchap_status = nvmet_auth_negotiate(req, d, tl);
|
||||
if (dhchap_status == 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user