Skip to content

Commit

Permalink
fix alignment issue for test transport.
Browse files Browse the repository at this point in the history
Signed-off-by: Jiewen Yao <[email protected]>
  • Loading branch information
jyao1 committed Apr 2, 2024
1 parent c36e1bc commit 269e738
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
10 changes: 6 additions & 4 deletions unit_test/spdm_transport_test_lib/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
* @retval RETURN_SUCCESS The message is encoded successfully.
* @retval RETURN_INVALID_PARAMETER The message is NULL or the message_size is zero.
**/
libspdm_return_t libspdm_test_encode_message(const uint32_t *session_id, size_t message_size,
libspdm_return_t libspdm_test_encode_message(const uint32_t *session_id,
bool need_alignment,
size_t message_size,
const void *message,
size_t *transport_message_size,
void **transport_message);
Expand Down Expand Up @@ -116,7 +118,7 @@ libspdm_return_t libspdm_transport_test_encode_message(
/* SPDM message to APP message*/
app_message = NULL;
app_message_size = transport_header_size + message_size + (LIBSPDM_TEST_ALIGNMENT - 1);
status = libspdm_test_encode_message(NULL, message_size,
status = libspdm_test_encode_message(NULL, false, message_size,
message,
&app_message_size,
&app_message);
Expand Down Expand Up @@ -145,7 +147,7 @@ libspdm_return_t libspdm_transport_test_encode_message(

/* secured message to secured Test message*/
status = libspdm_test_encode_message(
session_id, secured_message_size, secured_message,
session_id, true, secured_message_size, secured_message,
transport_message_size, transport_message);
if (LIBSPDM_STATUS_IS_ERROR(status)) {
LIBSPDM_DEBUG((LIBSPDM_DEBUG_ERROR, "transport_encode_message - %xu\n",
Expand All @@ -154,7 +156,7 @@ libspdm_return_t libspdm_transport_test_encode_message(
}
} else {
/* SPDM message to normal Test message*/
status = libspdm_test_encode_message(NULL, message_size, message,
status = libspdm_test_encode_message(NULL, true, message_size, message,
transport_message_size,
transport_message);
if (LIBSPDM_STATUS_IS_ERROR(status)) {
Expand Down
10 changes: 8 additions & 2 deletions unit_test/spdm_transport_test_lib/test.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ spdm_version_number_t libspdm_test_get_secured_spdm_version(
* @retval RETURN_SUCCESS The message is encoded successfully.
* @retval RETURN_INVALID_PARAMETER The message is NULL or the message_size is zero.
**/
libspdm_return_t libspdm_test_encode_message(const uint32_t *session_id, size_t message_size,
libspdm_return_t libspdm_test_encode_message(const uint32_t *session_id,
bool need_alignment,
size_t message_size,
void *message,
size_t *transport_message_size,
void **transport_message)
Expand All @@ -80,7 +82,11 @@ libspdm_return_t libspdm_test_encode_message(const uint32_t *session_id, size_t
uint32_t data32;
libspdm_test_message_header_t *test_message_header;

alignment = LIBSPDM_TEST_ALIGNMENT;
if (need_alignment) {
alignment = LIBSPDM_TEST_ALIGNMENT;
} else {
alignment = 1;
}
aligned_message_size =
(message_size + (alignment - 1)) & ~(alignment - 1);

Expand Down

0 comments on commit 269e738

Please sign in to comment.