From: Amit Engel <amit.engel@dell.com>
Date: Wed, 27 Oct 2021 06:49:27 +0000 (+0300)
Subject: nvmet-tcp: fix header digest verification
X-Git-Tag: v5.15~8^2^2
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=86aeda32b887cdaeb0f4b7bfc9971e36377181c7;p=users%2Fdwmw2%2Flinux.git

nvmet-tcp: fix header digest verification

Pass the correct length to nvmet_tcp_verify_hdgst, which is the pdu
header length.  This fixes a wrong behaviour where header digest
verification passes although the digest is wrong.

Signed-off-by: Amit Engel <amit.engel@dell.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
---

diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
index 586ca20837e7b..46c3b3be7e033 100644
--- a/drivers/nvme/target/tcp.c
+++ b/drivers/nvme/target/tcp.c
@@ -1096,7 +1096,7 @@ recv:
 	}
 
 	if (queue->hdr_digest &&
-	    nvmet_tcp_verify_hdgst(queue, &queue->pdu, queue->offset)) {
+	    nvmet_tcp_verify_hdgst(queue, &queue->pdu, hdr->hlen)) {
 		nvmet_tcp_fatal_error(queue); /* fatal */
 		return -EPROTO;
 	}