Fix Coverity issues 1596850, 1596851 and 1596852
authorTomas Mraz <tomas@openssl.org>
Mon, 6 May 2024 18:13:52 +0000 (20:13 +0200)
committerPauli <ppzgs1@gmail.com>
Tue, 7 May 2024 23:13:56 +0000 (09:13 +1000)
These are newly introduced memory leaks and UAF in evp_test.c

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24339)

test/evp_test.c

index 5da782d0def45b0ae882fbc233d763bcb07e8771..21106dd63343d770d232a62ef4ea2be6ac458c28 100644 (file)
@@ -411,10 +411,10 @@ static int parse_bin_chunk(const char *value, size_t offset, size_t max,
             return -1;
         if (!TEST_ptr(*buf = OPENSSL_hexstr2buf(chunk, &len))) {
             OPENSSL_free(chunk);
-            TEST_info("Can't convert chunk %s", chunk);
             TEST_openssl_errors();
             return -1;
         }
+        OPENSSL_free(chunk);
         *buflen = len;
     }
     *out_offset = value[0] == '"' ? offset + (*buflen) : offset + 2 * (*buflen);
@@ -742,6 +742,8 @@ static int cipher_test_init(EVP_TEST *t, const char *alg)
 
     if (data_chunk_size != 0 && !cipher_test_valid_fragmentation(cdat)) {
         ERR_pop_to_mark();
+        EVP_CIPHER_free(fetched_cipher);
+        OPENSSL_free(cdat);
         t->skip = 1;
         TEST_info("skipping, '%s' does not support fragmentation", alg);
         return 1;