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 <sthot...@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

Reply via email to