diff options
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_ossl.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c index 7c23bb4909..d864875266 100644 --- a/src/lib/libcrypto/dsa/dsa_ossl.c +++ b/src/lib/libcrypto/dsa/dsa_ossl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: dsa_ossl.c,v 1.33 2018/06/13 18:01:04 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_ossl.c,v 1.34 2018/06/14 17:14:12 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -146,9 +146,6 @@ dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
146 | if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) | 146 | if (!BN_mod_mul(s, s, kinv, dsa->q, ctx)) |
147 | goto err; | 147 | goto err; |
148 | 148 | ||
149 | ret = DSA_SIG_new(); | ||
150 | if (ret == NULL) | ||
151 | goto err; | ||
152 | /* | 149 | /* |
153 | * Redo if r or s is zero as required by FIPS 186-3: this is very | 150 | * Redo if r or s is zero as required by FIPS 186-3: this is very |
154 | * unlikely. | 151 | * unlikely. |
@@ -160,6 +157,11 @@ dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa) | |||
160 | } | 157 | } |
161 | goto redo; | 158 | goto redo; |
162 | } | 159 | } |
160 | |||
161 | if ((ret = DSA_SIG_new()) == NULL) { | ||
162 | reason = ERR_R_MALLOC_FAILURE; | ||
163 | goto err; | ||
164 | } | ||
163 | ret->r = r; | 165 | ret->r = r; |
164 | ret->s = s; | 166 | ret->s = s; |
165 | 167 | ||