Commit 2232e262 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix memory leak in s2i_ASN_INTEGER and return an error
if any invalid characters are present.
parent 137e7e3a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -156,11 +156,11 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, char *value)
	ASN1_INTEGER *aint;
	int isneg, ishex;
	int ret;
	bn = BN_new();
	if (!value) {
		X509V3err(X509V3_F_S2I_ASN1_INTEGER,X509V3_R_INVALID_NULL_VALUE);
		return 0;
	}
	bn = BN_new();
	if (value[0] == '-') {
		value++;
		isneg = 1;
@@ -174,7 +174,8 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, char *value)
	if (ishex) ret = BN_hex2bn(&bn, value);
	else ret = BN_dec2bn(&bn, value);

	if (!ret) {
	if (!ret || value[ret]) {
		BN_free(bn);
		X509V3err(X509V3_F_S2I_ASN1_INTEGER,X509V3_R_BN_DEC2BN_ERROR);
		return 0;
	}