summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNeil Horman <nhorman@openssl.org>2023-11-22 12:16:54 -0500
committerNeil Horman <nhorman@openssl.org>2023-12-01 11:14:45 -0500
commit9819ba5762aaa1fbdf35e68f1495391bc3e3d43c (patch)
treeff84f6a41cc6f2f9b9acc5eb6d3efb053bd7827b /test
parent0d96d00f1f42b1fc67d963602466e1bbf37900a3 (diff)
Don't free aliased pointers in ctx cmp_ctx tests
Coverity recorded issues 1551739 and 1551737, a potential double free in the tests. It occurs when the DUP operation fails in such a way val3_read is returned as the same pointer as val2_read. Ideally it should never happen, but resetting val3_read to 0 should satisfy coverity that there is no issue here Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/22800) (cherry picked from commit c8ca810da9c47d8cb6988fd14e1cb4e20b0877e8)
Diffstat (limited to 'test')
-rw-r--r--test/cmp_ctx_test.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/cmp_ctx_test.c b/test/cmp_ctx_test.c
index 71fa679ff4..4a10653fc8 100644
--- a/test/cmp_ctx_test.c
+++ b/test/cmp_ctx_test.c
@@ -391,6 +391,7 @@ execute_CTX_##SETN##_##GETN##_##FIELD(OSSL_CMP_CTX_TEST_FIXTURE *fixture) \
} else { \
if (DUP && val1_read == val1) { \
TEST_error("first set did not dup the value"); \
+ val1_read = 0; \
res = 0; \
} \
if (DEFAULT(val1_read)) { \
@@ -419,6 +420,7 @@ execute_CTX_##SETN##_##GETN##_##FIELD(OSSL_CMP_CTX_TEST_FIXTURE *fixture) \
} else { \
if (DUP && val2_read == val2) { \
TEST_error("second set did not dup the value"); \
+ val2_read = 0; \
res = 0; \
} \
if (val2 == val1) { \
@@ -448,6 +450,7 @@ execute_CTX_##SETN##_##GETN##_##FIELD(OSSL_CMP_CTX_TEST_FIXTURE *fixture) \
} else { \
if (DUP && val3_read == val2_read) { \
TEST_error("third get did not create a new dup"); \
+ val3_read = 0; \
res = 0; \
} \
} \