hx509: Fix coverity warnings

This commit is contained in:
Nicolas Williams
2022-01-17 17:36:48 -06:00
parent 2e729a9aa2
commit dd71303a2f
7 changed files with 39 additions and 19 deletions

View File

@@ -893,9 +893,12 @@ HX509_LIB_FUNCTION void HX509_LIB_CALL
hx509_free_octet_string_list(hx509_octet_string_list *list)
{
size_t i;
for (i = 0; i < list->len; i++)
der_free_octet_string(&list->val[i]);
free(list->val);
if (list->val) {
for (i = 0; i < list->len; i++)
der_free_octet_string(&list->val[i]);
free(list->val);
}
list->val = NULL;
list->len = 0;
}
@@ -2809,6 +2812,12 @@ _hx509_set_cert_attribute(hx509_context context,
{
hx509_cert_attribute a;
void *d;
int ret;
/*
* TODO: Rewrite this (and hx509_cert_attribute, and _hx509_cert_attrs) to
* use the add_AttributeValues() util generated by asn1_compile.
*/
if (hx509_cert_get_attribute(cert, oid) != NULL)
return 0;
@@ -2825,13 +2834,18 @@ _hx509_set_cert_attribute(hx509_context context,
if (a == NULL)
return ENOMEM;
der_copy_octet_string(attr, &a->data);
der_copy_oid(oid, &a->oid);
ret = der_copy_octet_string(attr, &a->data);
if (ret == 0)
ret = der_copy_oid(oid, &a->oid);
if (ret == 0) {
cert->attrs.val[cert->attrs.len] = a;
cert->attrs.len++;
} else {
der_free_octet_string(&a->data);
free(a);
}
cert->attrs.val[cert->attrs.len] = a;
cert->attrs.len++;
return 0;
return ret;
}
/**