From 58f0f52e67b5053fd4f768a38c2b50bd77c9329b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bodo=20M=C3=B6ller?= Date: Tue, 7 Nov 2000 09:35:19 +0000 Subject: [PATCH 1/1] handle the case when BN_new returns NULL --- crypto/bn/bn_lib.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c index 3e4965d695..89a3267b4a 100644 --- a/crypto/bn/bn_lib.c +++ b/crypto/bn/bn_lib.c @@ -458,12 +458,20 @@ BIGNUM *bn_dup_expand(const BIGNUM *b, int words) if (a) { r = BN_new(); - r->top = b->top; - r->dmax = words; - r->neg = b->neg; - r->d = a; + if (r) + { + r->top = b->top; + r->dmax = words; + r->neg = b->neg; + r->d = a; + } + else + { + /* r == NULL, BN_new failure */ + OPENSSL_free(a); + } } - /* Otherwise, there was an error in allocation in + /* If a == NULL, there was an error in allocation in internal_bn_expand(), and NULL should be returned */ } else -- 2.34.1