Skip to content

Commit

Permalink
test/crypto: fix wireless auth digest segment
Browse files Browse the repository at this point in the history
[ upstream commit dc3f6c5 ]

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: 11c5485 ("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>
  • Loading branch information
ciarapow authored and kevintraynor committed Nov 7, 2022
1 parent 7e842d3 commit 627efa1
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions app/test/test_cryptodev.c
Expand Up @@ -3038,6 +3038,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,
Expand Down

0 comments on commit 627efa1

Please sign in to comment.