summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/bn_blind.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/bn/bn_blind.c')
-rw-r--r--src/lib/libcrypto/bn/bn_blind.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/lib/libcrypto/bn/bn_blind.c b/src/lib/libcrypto/bn/bn_blind.c
index 6ba9d99e62..f58a977bba 100644
--- a/src/lib/libcrypto/bn/bn_blind.c
+++ b/src/lib/libcrypto/bn/bn_blind.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_blind.c,v 1.35 2023/08/08 15:10:34 tb Exp $ */ 1/* $OpenBSD: bn_blind.c,v 1.36 2023/08/08 15:18:24 tb Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -291,15 +291,13 @@ BN_BLINDING_thread_id(BN_BLINDING *b)
291} 291}
292 292
293BN_BLINDING * 293BN_BLINDING *
294BN_BLINDING_create_param(BN_BLINDING *b, const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, 294BN_BLINDING_create_param(const BIGNUM *e, BIGNUM *m, BN_CTX *ctx,
295 int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 295 int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
296 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx) 296 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), BN_MONT_CTX *m_ctx)
297{ 297{
298 BN_BLINDING *ret = NULL; 298 BN_BLINDING *ret = NULL;
299 299
300 if ((ret = b) == NULL) 300 if ((ret = BN_BLINDING_new(e, m)) == NULL)
301 ret = BN_BLINDING_new(e, m);
302 if (ret == NULL)
303 goto err; 301 goto err;
304 302
305 if (bn_mod_exp != NULL) 303 if (bn_mod_exp != NULL)
@@ -313,8 +311,7 @@ BN_BLINDING_create_param(BN_BLINDING *b, const BIGNUM *e, BIGNUM *m, BN_CTX *ctx
313 return ret; 311 return ret;
314 312
315 err: 313 err:
316 if (ret != b) 314 BN_BLINDING_free(ret);
317 BN_BLINDING_free(ret);
318 315
319 return NULL; 316 return NULL;
320} 317}