Commit 2ae1ea37 authored by Geoff Thorpe's avatar Geoff Thorpe
Browse files

BN_FLG_FREE is of extremely dubious usefulness, and is only referred to

once in the source (where it is set for the benefit of no other code
whatsoever). I've deprecated the declaration in the header and likewise
made the use of the flag conditional in bn_lib.c. Note, this change also
NULLs the 'd' pointer in a BIGNUM when it is reset but not deallocated.
parent 34066d74
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -254,7 +254,9 @@ extern "C" {

#define BN_FLG_MALLOCED		0x01
#define BN_FLG_STATIC_DATA	0x02
#ifndef OPENSSL_NO_DEPRECATED
#define BN_FLG_FREE		0x8000	/* used for debuging */
#endif
#define BN_set_flags(b,n)	((b)->flags|=(n))
#define BN_get_flags(b,n)	((b)->flags&(n))

+7 −1
Original line number Diff line number Diff line
@@ -278,9 +278,15 @@ void BN_free(BIGNUM *a)
	if (a == NULL) return;
	if ((a->d != NULL) && !(BN_get_flags(a,BN_FLG_STATIC_DATA)))
		OPENSSL_free(a->d);
	a->flags|=BN_FLG_FREE; /* REMOVE? */
	if (a->flags & BN_FLG_MALLOCED)
		OPENSSL_free(a);
	else
		{
#ifndef OPENSSL_NO_DEPRECATED
		a->flags|=BN_FLG_FREE;
#endif
		a->d = NULL;
		}
	}

void BN_init(BIGNUM *a)