[openssl-dev] [openssl.org #4386] [PATCH] Add sanity checks for BN_new() in OpenSSL-1.0.2g

paul.dale@oracle.com via RT rt at openssl.org
Mon Mar 7 21:44:20 UTC 2016


If one of the allocation calls succeeds and the other fails, the patched code will leak memory.
It needs something along the lines of:

if (order != NULL) BN_clear_free(order);
if (d != NULL) BN_clear_free(d);

in the failure case code.


Pauli

-- 
Oracle
Dr Paul Dale | Cryptographer | Network Security & Encryption 
Phone +61 7 3031 7217
Oracle Australia

On Mon, 7 Mar 2016 05:55:23 PM Bill Parker via RT wrote:
> Hello All,
> 
> In reviewing code in directory 'engines/ccgost', file 'gost2001.c',
> there are two calls to BN_new() which are not checked for a return
> value of NULL, indicating failure.
> 
> The patch file below should address/correct this issue:
> 
> --- gost2001.c.orig     2016-03-06 11:32:49.676178425 -0800
> +++ gost2001.c  2016-03-06 11:38:04.604204158 -0800
> @@ -434,6 +434,10 @@
>  int gost2001_keygen(EC_KEY *ec)
>  {
>      BIGNUM *order = BN_new(), *d = BN_new();
> +    if (!order || !d) {
> +       GOSTerr(GOST_F_GOST2001_KEYGEN, ERR_R_MALLOC_FAILURE);
> +       return 0;
> +    }
>      const EC_GROUP *group = EC_KEY_get0_group(ec);
> 
>      if(!group || !EC_GROUP_get_order(group, order, NULL)) {
> 
> 


-- 
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4386
Please log in as guest with password guest if prompted



More information about the openssl-dev mailing list