In {RSA,DSA,DH}_new_method(x) need to increase the reference
count of the ENGINE is x is not NULL since it will be freed in {RSA,DSA,DH}_free().
This commit is contained in:
parent
f13def508c
commit
0c9de428ae
@ -142,16 +142,21 @@ DH *DH_new_method(ENGINE *engine)
|
||||
DHerr(DH_F_DH_NEW,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
if(engine)
|
||||
ret->engine = engine;
|
||||
else
|
||||
|
||||
if (engine)
|
||||
{
|
||||
if((ret->engine=ENGINE_get_default_DH()) == NULL)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
if(ENGINE_init(engine))
|
||||
ret->engine = engine;
|
||||
else
|
||||
ret->engine = NULL;
|
||||
}
|
||||
else
|
||||
ret->engine=ENGINE_get_default_DH();
|
||||
if(ret->engine == NULL)
|
||||
{
|
||||
DHerr(DH_F_DH_NEW,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
meth = ENGINE_get_DH(ret->engine);
|
||||
ret->pad=0;
|
||||
|
@ -146,17 +146,24 @@ DSA *DSA_new_method(ENGINE *engine)
|
||||
DSAerr(DSA_F_DSA_NEW,ERR_R_MALLOC_FAILURE);
|
||||
return(NULL);
|
||||
}
|
||||
if(engine)
|
||||
ret->engine = engine;
|
||||
else
|
||||
|
||||
if (engine)
|
||||
{
|
||||
if((ret->engine=ENGINE_get_default_DSA()) == NULL)
|
||||
{
|
||||
DSAerr(DSA_F_DSA_NEW,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
if(ENGINE_init(engine))
|
||||
ret->engine = engine;
|
||||
else
|
||||
ret->engine = NULL;
|
||||
}
|
||||
else
|
||||
ret->engine=ENGINE_get_default_DSA();
|
||||
|
||||
if(ret->engine == NULL)
|
||||
{
|
||||
DSAerr(DSA_F_DSA_NEW,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
meth = ENGINE_get_DSA(ret->engine);
|
||||
ret->pad=0;
|
||||
ret->version=0;
|
||||
|
@ -162,17 +162,23 @@ RSA *RSA_new_method(ENGINE *engine)
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
if (engine == NULL)
|
||||
if (engine)
|
||||
{
|
||||
if((ret->engine=ENGINE_get_default_RSA()) == NULL)
|
||||
{
|
||||
RSAerr(RSA_F_RSA_NEW_METHOD,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
if(ENGINE_init(engine))
|
||||
ret->engine = engine;
|
||||
else
|
||||
ret->engine = NULL;
|
||||
}
|
||||
else
|
||||
ret->engine=engine;
|
||||
ret->engine=ENGINE_get_default_RSA();
|
||||
|
||||
if(ret->engine == NULL)
|
||||
{
|
||||
RSAerr(RSA_F_RSA_NEW_METHOD,ERR_LIB_ENGINE);
|
||||
OPENSSL_free(ret);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
meth = ENGINE_get_RSA(ret->engine);
|
||||
|
||||
ret->pad=0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user