summaryrefslogtreecommitdiff
path: root/lib/x509/verify-high.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/x509/verify-high.c')
-rw-r--r--lib/x509/verify-high.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/x509/verify-high.c b/lib/x509/verify-high.c
index 763c527a59..9c4f292f05 100644
--- a/lib/x509/verify-high.c
+++ b/lib/x509/verify-high.c
@@ -1310,8 +1310,14 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
}
}
- if (!(flags & GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN))
- cert_list = _gnutls_sort_clist(sorted, cert_list, &cert_list_size, NULL);
+ if (!(flags & GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN) &&
+ cert_list_size <= DEFAULT_MAX_VERIFY_DEPTH) {
+ for (i = 0; i < cert_list_size; i++) {
+ sorted[i] = cert_list[i];
+ }
+ cert_list = sorted;
+ cert_list_size = _gnutls_sort_clist(cert_list, cert_list_size);
+ }
cert_list_size = shorten_clist(list, cert_list, cert_list_size);
if (cert_list_size <= 0)