Merge pull request #1010 from AndrzejKurek/fix-error-translation
psa_util: fix for correctly computing elements in array
diff --git a/include/mbedtls/psa_util.h b/include/mbedtls/psa_util.h
index 6d5843d..b750716 100644
--- a/include/mbedtls/psa_util.h
+++ b/include/mbedtls/psa_util.h
@@ -388,8 +388,10 @@
int psa_pk_status_to_mbedtls(psa_status_t status);
/* Utility macro to shorten the defines of error translator in modules. */
-#define PSA_TO_MBEDTLS_ERR_LIST(status, error_list, fallback_f) \
- psa_status_to_mbedtls(status, error_list, sizeof(error_list), fallback_f)
+#define PSA_TO_MBEDTLS_ERR_LIST(status, error_list, fallback_f) \
+ psa_status_to_mbedtls(status, error_list, \
+ sizeof(error_list)/sizeof(error_list[0]), \
+ fallback_f)
#endif /* MBEDTLS_PSA_CRYPTO_C */
#endif /* MBEDTLS_PSA_UTIL_H */
diff --git a/library/psa_util.c b/library/psa_util.c
index fefeea5..43a10a3 100644
--- a/library/psa_util.c
+++ b/library/psa_util.c
@@ -112,10 +112,9 @@
int psa_status_to_mbedtls(psa_status_t status,
const mbedtls_error_pair_t *local_translations,
- size_t local_errors_size,
+ size_t local_errors_num,
int (*fallback_f)(psa_status_t))
{
- size_t local_errors_num = (size_t) local_errors_size / 2;
for (size_t i = 0; i < local_errors_num; i++) {
if (status == local_translations[i].psa_status) {
return local_translations[i].mbedtls_error;