Skip to content

Commit 322daff

Browse files
committed
openssl: Make sure to release the functional ENGINE reference
The functional reference created by ENGINE_init() was never released, only the structural one created by ENGINE_by_id(). The functional reference includes an implicit structural reference, which is also released by ENGINE_finish(). Closes strongswan/strongswan#119.
1 parent 7cf3f97 commit 322daff

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/libstrongswan/plugins/openssl/openssl_plugin.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -436,21 +436,21 @@ static private_key_t *openssl_private_key_connect(key_type_t type,
436436
ENGINE_free(engine);
437437
return NULL;
438438
}
439+
ENGINE_free(engine);
439440
if (!login(engine, keyid))
440441
{
441442
DBG1(DBG_LIB, "login to engine '%s' failed", engine_id);
442-
ENGINE_free(engine);
443+
ENGINE_finish(engine);
443444
return NULL;
444445
}
445446
key = ENGINE_load_private_key(engine, keyname, NULL, NULL);
447+
ENGINE_finish(engine);
446448
if (!key)
447449
{
448450
DBG1(DBG_LIB, "failed to load private key with ID '%s' from "
449451
"engine '%s'", keyname, engine_id);
450-
ENGINE_free(engine);
451452
return NULL;
452453
}
453-
ENGINE_free(engine);
454454

455455
switch (EVP_PKEY_base_id(key))
456456
{

0 commit comments

Comments
 (0)