From: Neil Horman Date: Wed, 22 Nov 2023 17:16:54 +0000 (-0500) Subject: Don't free aliased pointers in ctx cmp_ctx tests X-Git-Tag: openssl-3.1.5~117 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9819ba5762aaa1fbdf35e68f1495391bc3e3d43c;p=thirdparty%2Fopenssl.git 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 Reviewed-by: Todd Short (Merged from https://github.com/openssl/openssl/pull/22800) (cherry picked from commit c8ca810da9c47d8cb6988fd14e1cb4e20b0877e8) --- diff --git a/test/cmp_ctx_test.c b/test/cmp_ctx_test.c index 71fa679ff40..4a10653fc87 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; \ } \ } \