Fix heap overflow issue in pkcs5_pbes2 testing functions
Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
diff --git a/tests/suites/test_suite_pkcs5.function b/tests/suites/test_suite_pkcs5.function
index 86c6a05..05ce1db 100644
--- a/tests/suites/test_suite_pkcs5.function
+++ b/tests/suites/test_suite_pkcs5.function
@@ -29,7 +29,7 @@
/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
void pbes2_encrypt(int params_tag, data_t *params_hex, data_t *pw,
- data_t *data, int datalen, int ref_ret,
+ data_t *data, int outsize, int ref_ret,
data_t *ref_out, int ref_out_len)
{
int my_ret;
@@ -46,7 +46,7 @@
params.p = params_hex->x;
params.len = params_hex->len;
- ASSERT_ALLOC(my_out, datalen);
+ ASSERT_ALLOC(my_out, ref_out->len);
my_ret = mbedtls_pkcs5_pbes2(¶ms, MBEDTLS_PKCS5_ENCRYPT,
pw->x, pw->len, data->x, data->len, my_out);
@@ -61,12 +61,11 @@
#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
my_ret = mbedtls_pkcs5_pbes2_ext(¶ms, MBEDTLS_PKCS5_ENCRYPT,
pw->x, pw->len, data->x, data->len, my_out,
- datalen, &my_out_len);
+ outsize, &my_out_len);
TEST_EQUAL(my_ret, ref_ret);
if (ref_ret == 0) {
- ASSERT_COMPARE(my_out, ref_out->len,
- ref_out->x, ref_out->len);
- TEST_EQUAL(my_out_len, (size_t) ref_out_len);
+ ASSERT_COMPARE(my_out, my_out_len,
+ ref_out->x, ref_out_len);
}
#endif
@@ -78,7 +77,7 @@
/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
void mbedtls_pkcs5_pbes2(int params_tag, data_t *params_hex, data_t *pw,
- data_t *data, int datalen, int ref_ret,
+ data_t *data, int outsize, int ref_ret,
data_t *ref_out, int ref_out_len)
{
int my_ret;
@@ -97,7 +96,7 @@
params.p = params_hex->x;
params.len = params_hex->len;
- ASSERT_ALLOC(my_out, datalen);
+ ASSERT_ALLOC(my_out, ref_out->len);
my_ret = mbedtls_pkcs5_pbes2(¶ms, MBEDTLS_PKCS5_DECRYPT,
pw->x, pw->len, data->x, data->len, my_out);
@@ -111,12 +110,11 @@
#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
my_ret = mbedtls_pkcs5_pbes2_ext(¶ms, MBEDTLS_PKCS5_DECRYPT,
pw->x, pw->len, data->x, data->len, my_out,
- datalen, &my_out_len);
+ outsize, &my_out_len);
TEST_EQUAL(my_ret, ref_ret);
if (ref_ret == 0) {
- ASSERT_COMPARE(my_out, ref_out->len,
- ref_out->x, ref_out->len);
- TEST_EQUAL(my_out_len, (size_t) ref_out_len);
+ ASSERT_COMPARE(my_out, my_out_len,
+ ref_out->x, ref_out_len);
}
#endif