Also eliminate leaks in PKCS #12 parsing.
/* ENC_DATA_OID needs decryption */
- bag->element[0].type = GNUTLS_BAG_ENCRYPTED;
- bag->bag_elements = 1;
-
result = _gnutls_x509_read_value(c2, root2, &bag->element[0].data);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
+ bag->element[0].type = GNUTLS_BAG_ENCRYPTED;
+ bag->bag_elements = 1;
+
result = 0;
cleanup:
}
if (*salt_size >= (unsigned)dsalt.size) {
+ *salt_size = dsalt.size;
memcpy(salt, dsalt.data, dsalt.size);
} else {
*salt_size = dsalt.size;
goto error;
}
- return 0;
+ result = 0;
error:
+ asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
return result;
}