From 96108b611aab8f07031b05e004e3efc109ac61e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 3 Feb 2023 12:32:41 +0100 Subject: [PATCH] Avoid unnecessary copy in test_suite_md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also avoids buffer with an arbitrary size while at it. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_md.function | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/tests/suites/test_suite_md.function b/tests/suites/test_suite_md.function index d0f08e159..a499ca064 100644 --- a/tests/suites/test_suite_md.function +++ b/tests/suites/test_suite_md.function @@ -131,17 +131,15 @@ void md_info(int md_type, char *md_name, int md_size) /* BEGIN_CASE */ void md_text(int md_type, char *text_src_string, data_t *hash) { - unsigned char src_str[1000]; + unsigned char *src = (unsigned char *) text_src_string; + size_t src_len = strlen(text_src_string); unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0}; const mbedtls_md_info_t *md_info = NULL; - memset(src_str, 0x00, 1000); - - strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); md_info = mbedtls_md_info_from_type(md_type); TEST_ASSERT(md_info != NULL); - TEST_ASSERT(0 == mbedtls_md(md_info, src_str, strlen((char *) src_str), output)); + TEST_ASSERT(0 == mbedtls_md(md_info, src, src_len, output)); TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, mbedtls_md_get_size(md_info), @@ -171,9 +169,10 @@ void md_hex(int md_type, data_t *src_str, data_t *hash) void md_text_multi(int md_type, char *text_src_string, data_t *hash) { - unsigned char src_str[1000]; + unsigned char *src = (unsigned char *) text_src_string; + size_t src_len = strlen(text_src_string); unsigned char output[MBEDTLS_MD_MAX_SIZE] = {0}; - int halfway, len; + size_t halfway; const mbedtls_md_info_t *md_info = NULL; mbedtls_md_context_t ctx, ctx_copy; @@ -181,11 +180,7 @@ void md_text_multi(int md_type, char *text_src_string, mbedtls_md_init(&ctx); mbedtls_md_init(&ctx_copy); - memset(src_str, 0x00, 1000); - - strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); - len = strlen((char *) src_str); - halfway = len / 2; + halfway = src_len / 2; md_info = mbedtls_md_info_from_type(md_type); TEST_ASSERT(md_info != NULL); @@ -194,10 +189,10 @@ void md_text_multi(int md_type, char *text_src_string, TEST_ASSERT(0 == mbedtls_md_starts(&ctx)); TEST_ASSERT(ctx.md_ctx != NULL); - TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str, halfway)); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src, halfway)); TEST_ASSERT(0 == mbedtls_md_clone(&ctx_copy, &ctx)); - TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str + halfway, len - halfway)); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src + halfway, src_len - halfway)); TEST_ASSERT(0 == mbedtls_md_finish(&ctx, output)); TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, mbedtls_md_get_size(md_info), @@ -206,7 +201,7 @@ void md_text_multi(int md_type, char *text_src_string, /* Test clone */ memset(output, 0x00, sizeof(output)); - TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src_str + halfway, len - halfway)); + TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src + halfway, src_len - halfway)); TEST_ASSERT(0 == mbedtls_md_finish(&ctx_copy, output)); TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, mbedtls_md_get_size(md_info),