diff options
Diffstat (limited to 'src/lib/libcrypto/dh/dh_lib.c')
| -rw-r--r-- | src/lib/libcrypto/dh/dh_lib.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/dh/dh_lib.c b/src/lib/libcrypto/dh/dh_lib.c index 66803b5565..96f118c153 100644 --- a/src/lib/libcrypto/dh/dh_lib.c +++ b/src/lib/libcrypto/dh/dh_lib.c | |||
| @@ -168,13 +168,13 @@ DH *DH_new_method(ENGINE *engine) | |||
| 168 | ret->method_mont_p=NULL; | 168 | ret->method_mont_p=NULL; |
| 169 | ret->references = 1; | 169 | ret->references = 1; |
| 170 | ret->flags=meth->flags; | 170 | ret->flags=meth->flags; |
| 171 | CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 171 | if ((meth->init != NULL) && !meth->init(ret)) | 172 | if ((meth->init != NULL) && !meth->init(ret)) |
| 172 | { | 173 | { |
| 174 | CRYPTO_free_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 173 | OPENSSL_free(ret); | 175 | OPENSSL_free(ret); |
| 174 | ret=NULL; | 176 | ret=NULL; |
| 175 | } | 177 | } |
| 176 | else | ||
| 177 | CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data); | ||
| 178 | return(ret); | 178 | return(ret); |
| 179 | } | 179 | } |
| 180 | 180 | ||
| @@ -196,12 +196,12 @@ void DH_free(DH *r) | |||
| 196 | } | 196 | } |
| 197 | #endif | 197 | #endif |
| 198 | 198 | ||
| 199 | CRYPTO_free_ex_data(dh_meth, r, &r->ex_data); | ||
| 200 | |||
| 201 | meth = ENGINE_get_DH(r->engine); | 199 | meth = ENGINE_get_DH(r->engine); |
| 202 | if(meth->finish) meth->finish(r); | 200 | if(meth->finish) meth->finish(r); |
| 203 | ENGINE_finish(r->engine); | 201 | ENGINE_finish(r->engine); |
| 204 | 202 | ||
| 203 | CRYPTO_free_ex_data(dh_meth, r, &r->ex_data); | ||
| 204 | |||
| 205 | if (r->p != NULL) BN_clear_free(r->p); | 205 | if (r->p != NULL) BN_clear_free(r->p); |
| 206 | if (r->g != NULL) BN_clear_free(r->g); | 206 | if (r->g != NULL) BN_clear_free(r->g); |
| 207 | if (r->q != NULL) BN_clear_free(r->q); | 207 | if (r->q != NULL) BN_clear_free(r->q); |
