fix potential memory leak + improved error checking
PR: 1182
This commit is contained in:
parent
1682e8fb12
commit
62b6cd007f
@ -139,7 +139,15 @@ static STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method,
|
|||||||
CONF_VALUE *cnf;
|
CONF_VALUE *cnf;
|
||||||
int i, ia5org;
|
int i, ia5org;
|
||||||
pols = sk_POLICYINFO_new_null();
|
pols = sk_POLICYINFO_new_null();
|
||||||
|
if (pols == NULL) {
|
||||||
|
X509V3err(X509V3_F_R2I_CERTPOL, ERR_R_MALLOC_FAILURE);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
vals = X509V3_parse_list(value);
|
vals = X509V3_parse_list(value);
|
||||||
|
if (vals == NULL) {
|
||||||
|
X509V3err(X509V3_F_R2I_CERTPOL, ERR_R_X509V3_LIB);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
ia5org = 0;
|
ia5org = 0;
|
||||||
for(i = 0; i < sk_CONF_VALUE_num(vals); i++) {
|
for(i = 0; i < sk_CONF_VALUE_num(vals); i++) {
|
||||||
cnf = sk_CONF_VALUE_value(vals, i);
|
cnf = sk_CONF_VALUE_value(vals, i);
|
||||||
@ -178,6 +186,7 @@ static STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method,
|
|||||||
sk_CONF_VALUE_pop_free(vals, X509V3_conf_free);
|
sk_CONF_VALUE_pop_free(vals, X509V3_conf_free);
|
||||||
return pols;
|
return pols;
|
||||||
err:
|
err:
|
||||||
|
sk_CONF_VALUE_pop_free(vals, X509V3_conf_free);
|
||||||
sk_POLICYINFO_pop_free(pols, POLICYINFO_free);
|
sk_POLICYINFO_pop_free(pols, POLICYINFO_free);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user