nvmet-auth: fix return value check in auth receive
authorChaitanya Kulkarni <kch@nvidia.com>
Mon, 18 Jul 2022 23:12:33 +0000 (16:12 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Aug 2022 23:22:51 +0000 (17:22 -0600)
nvmet_auth_challenge() return type is int and currently it uses status
variable that is of type u16 in nvmet_execute_auth_receive().

Catch the return value of nvmet_auth_challenge() into int and set the
NVME_SC_INTERNAL as status variable before we jump to error.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/target/fabrics-cmd-auth.c

index b785a8e..c851814 100644 (file)
@@ -484,8 +484,7 @@ void nvmet_execute_auth_receive(struct nvmet_req *req)
                 ctrl->cntlid, req->sq->qid, req->sq->dhchap_step);
        switch (req->sq->dhchap_step) {
        case NVME_AUTH_DHCHAP_MESSAGE_CHALLENGE:
-               status = nvmet_auth_challenge(req, d, al);
-               if (status < 0) {
+               if (nvmet_auth_challenge(req, d, al) < 0) {
                        pr_warn("ctrl %d qid %d: challenge error (%d)\n",
                                ctrl->cntlid, req->sq->qid, status);
                        status = NVME_SC_INTERNAL;