From: Bodo Möller Date: Tue, 7 Nov 2000 09:35:19 +0000 (+0000) Subject: handle the case when BN_new returns NULL X-Git-Tag: rsaref~6 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=58f0f52e67b5053fd4f768a38c2b50bd77c9329b;hp=55b3c877c7ec6ba97c1421b34767f88a3c56b51f handle the case when BN_new returns NULL --- 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