summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2020-08-18 08:42:57 +0000
committerDaiki Ueno <ueno@gnu.org>2020-08-18 08:42:57 +0000
commitcdf4cf8bede39036f4075f3280edb0d4b130cf3d (patch)
treea2be258414a7128de54ed1eb5751fc079bf8cf5f
parent4664a91156ae1b7567511ffcfc965b4e1ca52f37 (diff)
parent458f84498d9e36fb746cc7a6306d859c30617577 (diff)
downloadgnutls-cdf4cf8bede39036f4075f3280edb0d4b130cf3d.tar.gz
Merge branch 'tmp-crt-export2' into 'master'
gnutls_x509_crt_export2: return 0 instead of the length Closes #1025 See merge request gnutls/gnutls!1311
-rw-r--r--lib/x509/x509.c13
-rw-r--r--tests/mini-x509-2.c2
2 files changed, 11 insertions, 4 deletions
diff --git a/lib/x509/x509.c b/lib/x509/x509.c
index 2b68fe440e..c713f857a0 100644
--- a/lib/x509/x509.c
+++ b/lib/x509/x509.c
@@ -2997,10 +2997,15 @@ gnutls_x509_crt_export2(gnutls_x509_crt_t cert,
if (!cert->modified && cert->der.size) {
if (format == GNUTLS_X509_FMT_DER)
return _gnutls_set_datum(out, cert->der.data, cert->der.size);
- else
- return _gnutls_fbase64_encode(PEM_X509_CERT2, cert->der.data,
- cert->der.size, out);
-
+ else {
+ int ret = _gnutls_fbase64_encode(PEM_X509_CERT2,
+ cert->der.data,
+ cert->der.size,
+ out);
+ if (ret < 0)
+ return ret;
+ return 0;
+ }
}
return _gnutls_x509_export_int2(cert->cert, format, PEM_X509_CERT2,
diff --git a/tests/mini-x509-2.c b/tests/mini-x509-2.c
index e336af8367..c1bc544e7d 100644
--- a/tests/mini-x509-2.c
+++ b/tests/mini-x509-2.c
@@ -296,6 +296,7 @@ void start(const char *prio)
fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
exit(1);
}
+ assert(ret == 0);
gnutls_x509_crt_deinit(crt);
if (scert.size != mcert->size || memcmp(scert.data, mcert->data, mcert->size) != 0) {
@@ -331,6 +332,7 @@ void start(const char *prio)
fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
exit(1);
}
+ assert(ret == 0);
gnutls_x509_crt_deinit(crt);
if (ccert.size != mcert->size || memcmp(ccert.data, mcert->data, mcert->size) != 0) {