From e4569bd421efc469bbbaa5b98d93797e1c351ffa Mon Sep 17 00:00:00 2001 From: MengjinWu Date: Fri, 16 Sep 2022 04:22:10 +0000 Subject: [PATCH] test/nvme_tcp: Correct the psh_len in nvme_tcp unittest psh len is not the same with header len. Add an assert in nvme_tcp.c to prevent this happen again. Signed-off-by: MengjinWu Change-Id: Ibc250752bedf3da8994f79c51fb01577a222d364 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14521 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- lib/nvme/nvme_tcp.c | 1 + test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_tcp.c b/lib/nvme/nvme_tcp.c index 0e3de3858..33c7cd2d0 100644 --- a/lib/nvme/nvme_tcp.c +++ b/lib/nvme/nvme_tcp.c @@ -1636,6 +1636,7 @@ nvme_tcp_read_pdu(struct nvme_tcp_qpair *tqpair, uint32_t *reaped) break; /* Wait for the pdu specific header */ case NVME_TCP_PDU_RECV_STATE_AWAIT_PDU_PSH: + assert(pdu->psh_valid_bytes < pdu->psh_len); rc = nvme_tcp_read_data(tqpair->sock, pdu->psh_len - pdu->psh_valid_bytes, (uint8_t *)&pdu->hdr.raw + sizeof(struct spdk_nvme_tcp_common_pdu_hdr) + pdu->psh_valid_bytes); diff --git a/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c b/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c index 7932d3d4f..adc32b80e 100644 --- a/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c +++ b/test/unit/lib/nvme/nvme_tcp.c/nvme_tcp_ut.c @@ -1381,8 +1381,9 @@ test_nvme_tcp_ctrlr_connect_qpair(void) tqpair->recv_pdu->hdr.common.pdu_type = SPDK_NVME_TCP_PDU_TYPE_IC_RESP; tqpair->recv_pdu->hdr.common.plen = sizeof(struct spdk_nvme_tcp_ic_resp); tqpair->recv_pdu->hdr.common.hlen = sizeof(struct spdk_nvme_tcp_ic_resp); - tqpair->recv_pdu->ch_valid_bytes = 7; - tqpair->recv_pdu->psh_valid_bytes = tqpair->recv_pdu->hdr.common.hlen; + tqpair->recv_pdu->ch_valid_bytes = sizeof(struct spdk_nvme_tcp_common_pdu_hdr) - 1; + tqpair->recv_pdu->psh_valid_bytes = tqpair->recv_pdu->hdr.common.hlen - + sizeof(struct spdk_nvme_tcp_common_pdu_hdr) - 1; tqpair->recv_pdu->hdr.ic_resp.maxh2cdata = 4096; tqpair->recv_pdu->hdr.ic_resp.cpda = 1; tqpair->flags.icreq_send_ack = 1;