Geoff inspired me to nullify some pointers if initialisation went

wrong.  Additionally, just give a new value to hndidx once.
This commit is contained in:
Richard Levitte 2000-06-14 16:57:57 +00:00
parent 4c4ea428cc
commit 9a4051050c

View file

@ -400,28 +400,14 @@ static int hwcrhk_init()
goto err;
}
/* Everything's fine. */
hndidx = RSA_get_ex_new_index(0, "nFast HWCryptoHook RSA key handle",
NULL, NULL, hwcrhk_ex_free);
if (hdnidx == -1)
hndidx = RSA_get_ex_new_index(0,
"nFast HWCryptoHook RSA key handle",
NULL, NULL, hwcrhk_ex_free);
return 1;
err:
if(hwcrhk_dso)
DSO_free(hwcrhk_dso);
return 0;
}
static int hwcrhk_finish()
{
if(hwcrhk_dso == NULL)
{
ENGINEerr(ENGINE_F_HWCRHK_FINISH,ENGINE_R_NOT_LOADED);
return 0;
}
release_context(hwcrhk_context);
if(!DSO_free(hwcrhk_dso))
{
ENGINEerr(ENGINE_F_HWCRHK_FINISH,ENGINE_R_DSO_FAILURE);
return 0;
}
hwcrhk_dso = NULL;
p_hwcrhk_Init = NULL;
p_hwcrhk_Finish = NULL;
@ -430,7 +416,35 @@ static int hwcrhk_finish()
p_hwcrhk_RSAUnloadKey = NULL;
p_hwcrhk_ModExpCRT = NULL;
p_hwcrhk_RandomBytes = NULL;
return 1;
return 0;
}
static int hwcrhk_finish()
{
int to_return = 1;
if(hwcrhk_dso == NULL)
{
ENGINEerr(ENGINE_F_HWCRHK_FINISH,ENGINE_R_NOT_LOADED);
to_return = 0;
goto err;
}
release_context(hwcrhk_context);
if(!DSO_free(hwcrhk_dso))
{
ENGINEerr(ENGINE_F_HWCRHK_FINISH,ENGINE_R_DSO_FAILURE);
to_return = 0;
goto err;
}
err:
hwcrhk_dso = NULL;
p_hwcrhk_Init = NULL;
p_hwcrhk_Finish = NULL;
p_hwcrhk_ModExp = NULL;
p_hwcrhk_RSA = NULL;
p_hwcrhk_RSAUnloadKey = NULL;
p_hwcrhk_ModExpCRT = NULL;
p_hwcrhk_RandomBytes = NULL;
return to_return;
}
/* A little mod_exp */