From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B7F89A0543;
	Tue,  4 Oct 2022 14:55:21 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 77621427F1;
	Tue,  4 Oct 2022 14:55:18 +0200 (CEST)
Received: from mga07.intel.com (mga07.intel.com [134.134.136.100])
 by mails.dpdk.org (Postfix) with ESMTP id 122A640DFB
 for <dev@dpdk.org>; Tue,  4 Oct 2022 14:55:16 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1664888117; x=1696424117;
 h=from:to:cc:subject:date:message-id:in-reply-to:
 references:mime-version:content-transfer-encoding;
 bh=rd8n5M3upaod8BBL8bLBCnEAC3KLFG4ESEI92v5g6L0=;
 b=K1oJwQkxjtbgXgCbZ8guB61YS1yRlnVxD3H8Y44++HX+jcQKmvYD+cYm
 v2OnkFsbRxuJHSCzW95pPoCT3g+WQnUjV6TdThe/gmHRRg8/+GR7Sj01E
 2xQUmOF0yngBqIDpgnm2qegfOAfi4zlEGZELe5f0x9JecXQMxbZRgBR51
 8uGxuVJ81nx93BbtzznxhpW272iKxna8MO9PocQczFQJp0wO81fSAcAIq
 Laxu8Q6ktj4ggCxoVQwbzAwbVWbiBzrWOfP3ORw1D3nE+I49Lw8/gDRGg
 COcz1OJiJ+K7hMivQfi1YewggyOTsfDP2z96Yxu41Q2lsGJlgrDZqbgjw g==;
X-IronPort-AV: E=McAfee;i="6500,9779,10490"; a="366996714"
X-IronPort-AV: E=Sophos;i="5.93,157,1654585200"; d="scan'208";a="366996714"
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Oct 2022 05:55:16 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6500,9779,10490"; a="799106343"
X-IronPort-AV: E=Sophos;i="5.93,157,1654585200"; d="scan'208";a="799106343"
Received: from silpixa00400355.ir.intel.com (HELO
 silpixa00400355.ger.corp.intel.com) ([10.237.222.163])
 by orsmga005.jf.intel.com with ESMTP; 04 Oct 2022 05:55:14 -0700
From: Ciara Power <ciara.power@intel.com>
To: Akhil Goyal <gakhil@marvell.com>,
	Fan Zhang <royzhang1980@gmail.com>
Cc: dev@dpdk.org, kai.ji@intel.com, pablo.de.lara.guarch@intel.com,
 Ciara Power <ciara.power@intel.com>, Fan Zhang <roy.fan.zhang@intel.com>
Subject: [PATCH v4 1/5] test/crypto: fix wireless auth digest segment
Date: Tue,  4 Oct 2022 12:55:01 +0000
Message-Id: <20221004125505.677795-2-ciara.power@intel.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20221004125505.677795-1-ciara.power@intel.com>
References: <20220812132334.75707-1-ciara.power@intel.com>
 <20221004125505.677795-1-ciara.power@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

The segment size for some tests was too small to hold the auth digest.
This caused issues when using op->sym->auth.digest.data for comparisons
in AESNI_MB PMD after a subsequent patch enables SGL.

For example, if segment size is 2, and digest size is 4, then 4 bytes
are read from op->sym->auth.digest.data, which overflows into the memory
after the segment, rather than using the second segment that contains
the remaining half of the digest.

Fixes: 11c5485bb276 ("test/crypto: add scatter-gather tests for IP and OOP")

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

---
v4: Added failure check when appending digest size to buffer.
---
 app/test/test_cryptodev.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 0c39b16b71..799eff0649 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -3051,6 +3051,16 @@ create_wireless_algo_auth_cipher_operation(
 			remaining_off -= rte_pktmbuf_data_len(sgl_buf);
 			sgl_buf = sgl_buf->next;
 		}
+
+		/* The last segment should be large enough to hold full digest */
+		if (sgl_buf->data_len < auth_tag_len) {
+			rte_pktmbuf_free(sgl_buf->next);
+			sgl_buf->next = NULL;
+			TEST_ASSERT_NOT_NULL(rte_pktmbuf_append(sgl_buf,
+					auth_tag_len - sgl_buf->data_len),
+					"No room to append auth tag");
+		}
+
 		sym_op->auth.digest.data = rte_pktmbuf_mtod_offset(sgl_buf,
 				uint8_t *, remaining_off);
 		sym_op->auth.digest.phys_addr = rte_pktmbuf_iova_offset(sgl_buf,
-- 
2.25.1