From 219904d20f0f20d92fce76eee8f6797e73d0c459 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Sun, 16 Aug 2020 18:23:24 +0200 Subject: gnutls_x509_crt_export2: return 0 instead of the length This aligns the behavior to the documentation. Signed-off-by: Daiki Ueno --- lib/x509/x509.c | 13 +++++++++---- tests/mini-x509-2.c | 2 ++ 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) { -- cgit v1.2.1