summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2020-03-11 09:21:12 +0000
committerDmitry Baryshkov <dbaryshkov@gmail.com>2020-03-11 09:21:12 +0000
commit6df0dab742b4ee5bd3fa55680657326305bde8cc (patch)
tree6b3dcc6ea0e5d3df5bf86a9de19a7863c4162a27
parente9bc97de75e7b50b5b96fa71140c732d470fa332 (diff)
parent12609f4f97fb9a60d663f81571c07f7d297da0b3 (diff)
downloadgnutls-6df0dab742b4ee5bd3fa55680657326305bde8cc.tar.gz
Merge branch 'fix-crq-ext' into 'master'
x509: drop endless loop in print_extensions See merge request gnutls/gnutls!1205
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3bin0 -> 830 bytes
-rw-r--r--lib/x509/output.c20
2 files changed, 9 insertions, 11 deletions
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3 b/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3
new file mode 100644
index 0000000000..4fe047d3c3
--- /dev/null
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.repro/609921afff38ec5b52feb7e17aa3035bdce0e0d3
Binary files differ
diff --git a/lib/x509/output.c b/lib/x509/output.c
index 1e605d8fb6..7278c3c0f8 100644
--- a/lib/x509/output.c
+++ b/lib/x509/output.c
@@ -1282,12 +1282,12 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
return;
}
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str, "error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)
@@ -2291,14 +2291,13 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
oid,
&sizeof_oid,
&critical);
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str,
"error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)
@@ -2662,14 +2661,13 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
gnutls_x509_crq_get_attribute_info(cert, i,
oid,
&sizeof_oid);
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
if (err < 0) {
- if (err ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
addf(str,
"error: get_extension_info: %s\n",
gnutls_strerror(err));
- continue;
+ break;
}
if (i == 0)