openssl: Fix potential crash with ECDH on Windows
authorTobias Brunner <tobias@strongswan.org>
Tue, 26 Jan 2021 18:33:24 +0000 (19:33 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 27 Jan 2021 15:37:45 +0000 (16:37 +0100)
Apparently, we should use OPENSSL_free() to release memory allocated by
OpenSSL.  While it generally maps to free() that's apparently not the
case on Windows, where the ECP test vectors caused `ACCESS_VIOLATION
exception` crashes (not always the same vector).

Fixes: 74e02ff5e624 ("openssl: Mainly use EVP interface for ECDH")

src/libstrongswan/plugins/openssl/openssl_ec_diffie_hellman.c

index 180eb0a..5369120 100644 (file)
@@ -246,7 +246,7 @@ METHOD(diffie_hellman_t, get_my_public_value, bool,
        if (pub.len != 0)
        {
                *value = chunk_clone(chunk_skip(pub, 1));
        if (pub.len != 0)
        {
                *value = chunk_clone(chunk_skip(pub, 1));
-               chunk_free(&pub);
+               OPENSSL_free(pub.ptr);
                return value->len != 0;
        }
        return FALSE;
                return value->len != 0;
        }
        return FALSE;