test/event_crypto: fix event crypto metadata write
Checks
Commit Message
Using memcpy to update event crypto metadata fields (request/response)
will result in one overwriting the other. To avoid this, fields of each
structure should be updated one by one.
Fixes: 3c2c535ecfc0 ("test: add event crypto adapter auto-test")
Signed-off-by: Shijith Thotton <sthotton@marvell.com>
---
app/test/test_event_crypto_adapter.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
Comments
Acked-by: Abhinandan Gujjar <Abhinandan.gujjar@intel.com>
> -----Original Message-----
> From: Shijith Thotton <sthotton@marvell.com>
> Sent: Monday, September 27, 2021 8:59 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Shijith Thotton <sthotton@marvell.com>;
> jerinj@marvell.com; anoobj@marvell.com; Gujjar, Abhinandan S
> <abhinandan.gujjar@intel.com>
> Subject: [PATCH] test/event_crypto: fix event crypto metadata write
>
> Using memcpy to update event crypto metadata fields (request/response)
> will result in one overwriting the other. To avoid this, fields of each structure
> should be updated one by one.
>
> Fixes: 3c2c535ecfc0 ("test: add event crypto adapter auto-test")
>
> Signed-off-by: Shijith Thotton <sthotton@marvell.com>
> ---
> app/test/test_event_crypto_adapter.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/app/test/test_event_crypto_adapter.c
> b/app/test/test_event_crypto_adapter.c
> index 279aa3abf5..3d7e9fb93c 100644
> --- a/app/test/test_event_crypto_adapter.c
> +++ b/app/test/test_event_crypto_adapter.c
> @@ -212,10 +212,10 @@ test_op_forward_mode(uint8_t session_less)
>
> if (cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) {
> /* Fill in private user data information */
> - rte_memcpy(&m_data.response_info,
> &response_info,
> - sizeof(response_info));
> - rte_memcpy(&m_data.request_info, &request_info,
> - sizeof(request_info));
> + m_data.request_info.cdev_id =
> request_info.cdev_id;
> + m_data.request_info.queue_pair_id =
> + request_info.queue_pair_id;
> + m_data.response_info.event =
> response_info.event;
> rte_cryptodev_sym_session_set_user_data(sess,
> &m_data, sizeof(m_data));
> }
> @@ -231,10 +231,9 @@ test_op_forward_mode(uint8_t session_less)
> uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH;
> op->private_data_offset = len;
> /* Fill in private data information */
> - rte_memcpy(&m_data.response_info, &response_info,
> - sizeof(response_info));
> - rte_memcpy(&m_data.request_info, &request_info,
> - sizeof(request_info));
> + m_data.request_info.cdev_id = request_info.cdev_id;
> + m_data.request_info.queue_pair_id =
> request_info.queue_pair_id;
> + m_data.response_info.event = response_info.event;
> rte_memcpy((uint8_t *)op + len, &m_data, sizeof(m_data));
> }
>
> @@ -405,8 +404,7 @@ test_op_new_mode(uint8_t session_less)
>
> if (cap &
> RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) {
> /* Fill in private user data information */
> - rte_memcpy(&m_data.response_info,
> &response_info,
> - sizeof(m_data));
> + m_data.response_info.event =
> response_info.event;
> rte_cryptodev_sym_session_set_user_data(sess,
> &m_data, sizeof(m_data));
> }
> @@ -425,8 +423,7 @@ test_op_new_mode(uint8_t session_less)
> uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH;
> op->private_data_offset = len;
> /* Fill in private data information */
> - rte_memcpy(&m_data.response_info, &response_info,
> - sizeof(m_data));
> + m_data.response_info.event = response_info.event;
> rte_memcpy((uint8_t *)op + len, &m_data, sizeof(m_data));
> }
>
> --
> 2.25.1
> Acked-by: Abhinandan Gujjar <Abhinandan.gujjar@intel.com>
>
Applied to dpdk-next-crypto
Thanks.
@@ -212,10 +212,10 @@ test_op_forward_mode(uint8_t session_less)
if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) {
/* Fill in private user data information */
- rte_memcpy(&m_data.response_info, &response_info,
- sizeof(response_info));
- rte_memcpy(&m_data.request_info, &request_info,
- sizeof(request_info));
+ m_data.request_info.cdev_id = request_info.cdev_id;
+ m_data.request_info.queue_pair_id =
+ request_info.queue_pair_id;
+ m_data.response_info.event = response_info.event;
rte_cryptodev_sym_session_set_user_data(sess,
&m_data, sizeof(m_data));
}
@@ -231,10 +231,9 @@ test_op_forward_mode(uint8_t session_less)
uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH;
op->private_data_offset = len;
/* Fill in private data information */
- rte_memcpy(&m_data.response_info, &response_info,
- sizeof(response_info));
- rte_memcpy(&m_data.request_info, &request_info,
- sizeof(request_info));
+ m_data.request_info.cdev_id = request_info.cdev_id;
+ m_data.request_info.queue_pair_id = request_info.queue_pair_id;
+ m_data.response_info.event = response_info.event;
rte_memcpy((uint8_t *)op + len, &m_data, sizeof(m_data));
}
@@ -405,8 +404,7 @@ test_op_new_mode(uint8_t session_less)
if (cap & RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA) {
/* Fill in private user data information */
- rte_memcpy(&m_data.response_info, &response_info,
- sizeof(m_data));
+ m_data.response_info.event = response_info.event;
rte_cryptodev_sym_session_set_user_data(sess,
&m_data, sizeof(m_data));
}
@@ -425,8 +423,7 @@ test_op_new_mode(uint8_t session_less)
uint32_t len = IV_OFFSET + MAXIMUM_IV_LENGTH;
op->private_data_offset = len;
/* Fill in private data information */
- rte_memcpy(&m_data.response_info, &response_info,
- sizeof(m_data));
+ m_data.response_info.event = response_info.event;
rte_memcpy((uint8_t *)op + len, &m_data, sizeof(m_data));
}