From: Dr. Stephen Henson Date: Tue, 16 Feb 2010 14:30:29 +0000 (+0000) Subject: Submitted by: Dmitry Ivanov X-Git-Tag: OpenSSL-fips-2_0-rc1~1267 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=439aab3afca0cb7478db39396aa82c574fe73bcd Submitted by: Dmitry Ivanov Don't leave dangling pointers in GOST engine if calls fail. --- diff --git a/engines/ccgost/gost2001.c b/engines/ccgost/gost2001.c index e3354549e1..dacd82d2b9 100644 --- a/engines/ccgost/gost2001.c +++ b/engines/ccgost/gost2001.c @@ -136,12 +136,14 @@ DSA_SIG *gost2001_do_sign(const unsigned char *dgst,int dlen, EC_KEY *eckey) { GOSTerr(GOST_F_GOST2001_DO_SIGN,GOST_R_RANDOM_NUMBER_GENERATOR_FAILED); DSA_SIG_free(newsig); + newsig = NULL; goto err; } if (!EC_POINT_mul(group,C,k,NULL,NULL,ctx)) { GOSTerr(GOST_F_GOST2001_DO_SIGN,ERR_R_EC_LIB); DSA_SIG_free(newsig); + newsig = NULL; goto err; } if (!X) X=BN_CTX_get(ctx); @@ -149,6 +151,7 @@ DSA_SIG *gost2001_do_sign(const unsigned char *dgst,int dlen, EC_KEY *eckey) { GOSTerr(GOST_F_GOST2001_DO_SIGN,ERR_R_EC_LIB); DSA_SIG_free(newsig); + newsig = NULL; goto err; } if (!r) r=BN_CTX_get(ctx);