"sureware" should not be "hwcrhk".
Also, the "to" variable used in cleanup is never non-NULL and is entirely unused. As such, the cleanup might have been missed under genuine error conditions and caused leaks and/or returned invalid pointers.
This commit is contained in:
@@ -307,7 +307,7 @@ static int surewarehk_ctrl(int cmd, long i, void *p, void (*f)())
|
|||||||
if (CRYPTO_add(&bio->references,1,CRYPTO_LOCK_BIO) > 1)
|
if (CRYPTO_add(&bio->references,1,CRYPTO_LOCK_BIO) > 1)
|
||||||
logstream = bio;
|
logstream = bio;
|
||||||
else
|
else
|
||||||
ENGINEerr(ENGINE_F_HWCRHK_CTRL,ENGINE_R_BIO_WAS_FREED);
|
ENGINEerr(ENGINE_F_SUREWAREHK_CTRL,ENGINE_R_BIO_WAS_FREED);
|
||||||
}
|
}
|
||||||
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
break;
|
break;
|
||||||
@@ -835,7 +835,6 @@ static DSA_SIG * surewarehk_dsa_do_sign(const unsigned char *from, int flen, DSA
|
|||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
char *hptr=NULL;
|
char *hptr=NULL;
|
||||||
unsigned char *to=NULL;
|
|
||||||
DSA_SIG *psign=NULL;
|
DSA_SIG *psign=NULL;
|
||||||
char msg[64]="ENGINE_dsa_do_sign";
|
char msg[64]="ENGINE_dsa_do_sign";
|
||||||
if (!p_surewarehk_Dsa_Sign)
|
if (!p_surewarehk_Dsa_Sign)
|
||||||
@@ -870,7 +869,7 @@ static DSA_SIG * surewarehk_dsa_do_sign(const unsigned char *from, int flen, DSA
|
|||||||
bn_fix_top(psign->s);
|
bn_fix_top(psign->s);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
if (to)
|
if (psign)
|
||||||
{
|
{
|
||||||
DSA_SIG_free(psign);
|
DSA_SIG_free(psign);
|
||||||
psign=NULL;
|
psign=NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user