mirror of
https://github.com/openssl/openssl.git
synced 2024-11-30 21:44:16 +08:00
Remove check_defer()
The check_defer() function was used to ensure that EVP_cleanup() was always called before OBJ_cleanup(). The new cleanup code ensures this so it is no longer needed. Remove obj_cleanup() call in OID config module: it is not needed any more either. Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
parent
7e74eaa661
commit
a535fe12f6
@ -93,7 +93,6 @@ static int oid_module_init(CONF_IMODULE *md, const CONF *cnf)
|
||||
|
||||
static void oid_module_finish(CONF_IMODULE *md)
|
||||
{
|
||||
obj_cleanup_int();
|
||||
}
|
||||
|
||||
void ASN1_add_oid_module(void)
|
||||
|
@ -73,7 +73,6 @@ int EVP_add_cipher(const EVP_CIPHER *c)
|
||||
(const char *)c);
|
||||
if (r == 0)
|
||||
return (0);
|
||||
check_defer(c->nid);
|
||||
r = OBJ_NAME_add(OBJ_nid2ln(c->nid), OBJ_NAME_TYPE_CIPHER_METH,
|
||||
(const char *)c);
|
||||
return (r);
|
||||
@ -88,7 +87,6 @@ int EVP_add_digest(const EVP_MD *md)
|
||||
r = OBJ_NAME_add(name, OBJ_NAME_TYPE_MD_METH, (const char *)md);
|
||||
if (r == 0)
|
||||
return (0);
|
||||
check_defer(md->type);
|
||||
r = OBJ_NAME_add(OBJ_nid2ln(md->type), OBJ_NAME_TYPE_MD_METH,
|
||||
(const char *)md);
|
||||
if (r == 0)
|
||||
@ -99,7 +97,6 @@ int EVP_add_digest(const EVP_MD *md)
|
||||
OBJ_NAME_TYPE_MD_METH | OBJ_NAME_ALIAS, name);
|
||||
if (r == 0)
|
||||
return (0);
|
||||
check_defer(md->pkey_type);
|
||||
r = OBJ_NAME_add(OBJ_nid2ln(md->pkey_type),
|
||||
OBJ_NAME_TYPE_MD_METH | OBJ_NAME_ALIAS, name);
|
||||
}
|
||||
@ -140,10 +137,6 @@ void evp_cleanup_int(void)
|
||||
OBJ_NAME_cleanup(-1);
|
||||
|
||||
EVP_PBE_cleanup();
|
||||
if (obj_cleanup_defer == 2) {
|
||||
obj_cleanup_defer = 0;
|
||||
obj_cleanup_int();
|
||||
}
|
||||
OBJ_sigid_free();
|
||||
}
|
||||
|
||||
|
@ -474,12 +474,14 @@ void OPENSSL_cleanup(void)
|
||||
#endif
|
||||
/*
|
||||
* Note that cleanup order is important:
|
||||
* - rand_cleanup_int could call an ENINGE's RAND cleanup function so
|
||||
* - rand_cleanup_int could call an ENGINE's RAND cleanup function so
|
||||
* must be called before engine_cleanup_int()
|
||||
* - ENGINEs use CRYPTO_EX_DATA and therefore, must be cleaned up
|
||||
* before the ex data handlers are wiped in CRYPTO_cleanup_all_ex_data().
|
||||
* - conf_modules_free_int() can end up in ENGINE code so must be called
|
||||
* before engine_cleanup_int()
|
||||
* - ENGINEs and additional EVP algorithms might use added OIDs names so
|
||||
* obj_cleanup_int() must be called last
|
||||
*/
|
||||
rand_cleanup_int();
|
||||
conf_modules_free_int();
|
||||
|
@ -198,24 +198,8 @@ static void cleanup3_doall(ADDED_OBJ *a)
|
||||
OPENSSL_free(a);
|
||||
}
|
||||
|
||||
/*
|
||||
* The purpose of obj_cleanup_defer is to avoid int_evp_cleanup() attempting
|
||||
* to use freed up OIDs. If necessary the actual freeing up of OIDs is delayed.
|
||||
*/
|
||||
int obj_cleanup_defer = 0;
|
||||
|
||||
void check_defer(int nid)
|
||||
{
|
||||
if (!obj_cleanup_defer && nid >= NUM_NID)
|
||||
obj_cleanup_defer = 1;
|
||||
}
|
||||
|
||||
void obj_cleanup_int(void)
|
||||
{
|
||||
if (obj_cleanup_defer) {
|
||||
obj_cleanup_defer = 2;
|
||||
return;
|
||||
}
|
||||
if (added == NULL)
|
||||
return;
|
||||
lh_ADDED_OBJ_set_down_load(added, 0);
|
||||
|
@ -1116,9 +1116,6 @@ int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid);
|
||||
int OBJ_add_sigid(int signid, int dig_id, int pkey_id);
|
||||
void OBJ_sigid_free(void);
|
||||
|
||||
extern int obj_cleanup_defer;
|
||||
void check_defer(int nid);
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/*
|
||||
* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
|
Loading…
Reference in New Issue
Block a user