internal_bn_expand(), and NULL should be returned */
bn_expand_internal(), and NULL should be returned */
BIGNUM *bn_dup_expand(const BIGNUM *b, int words)	{	BIGNUM *r = NULL;	if (words > b->dmax)		{		BN_ULONG *a = internal_bn_expand(b, words);		if (a)			{			r = BN_new();			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);				}			}		/* If a == NULL, there was an error in allocation in		   internal_bn_expand(), and NULL should be returned */		}	else		{		r = BN_dup(b);		}	return r;	}