[v1] examples/fips_validation: fix memory leak in sha test
Checks
Commit Message
There is wrong size used for allocation of digest buffer which in
some cases cause memory corruption. Also, fixed places where memory
leak is observed.
Fixes: 93d797d94f1 ("examples/fips_validation: add parsing for sha")
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
examples/fips_validation/fips_validation_sha.c | 10 ++++++++--
examples/fips_validation/main.c | 1 +
2 files changed, 9 insertions(+), 2 deletions(-)
@@ -229,13 +229,19 @@ parse_test_sha_json_algorithm(void)
for (i = 0; i < RTE_DIM(phsc); i++) {
if (info.interim_info.sha_data.algo == phsc[i].algo) {
vec.cipher_auth.digest.len = atoi(phsc[i].str);
- vec.cipher_auth.digest.val = calloc(0, vec.cipher_auth.digest.len * 8);
+ if (vec.cipher_auth.digest.val)
+ free(vec.cipher_auth.digest.val);
+
+ vec.cipher_auth.digest.val = calloc(1, vec.cipher_auth.digest.len);
break;
}
}
- if (i == RTE_DIM(phsc))
+ if (i == RTE_DIM(phsc)) {
+ free(vec.cipher_auth.digest.val);
+ vec.cipher_auth.digest.val = NULL;
return -1;
+ }
return 0;
}
@@ -2099,6 +2099,7 @@ fips_test_one_json_file(void)
json_info.json_vector_set = json_array_get(json_info.json_root, vector_set_idx);
fips_test_one_vector_set();
json_array_append_new(json_info.json_write_root, json_info.json_write_set);
+ json_incref(json_info.json_write_set);
}
json_dumpf(json_info.json_write_root, info.fp_wr, JSON_INDENT(4));