]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
gnutls_x509_crt_export2: return 0 instead of the length
authorDaiki Ueno <ueno@gnu.org>
Sun, 16 Aug 2020 16:23:24 +0000 (18:23 +0200)
committerDaiki Ueno <ueno@gnu.org>
Sun, 16 Aug 2020 16:23:24 +0000 (18:23 +0200)
This aligns the behavior to the documentation.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
lib/x509/x509.c
tests/mini-x509-2.c

index 2b68fe440e0b0002261c39f4dbd4b248a2c8944f..c713f857a077a7aeb235426fcca755031d9e9be9 100644 (file)
@@ -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,
index e336af83678a2406f987d25a2279ce31c7ac2669..c1bc544e7d6f4d560340f5764864e92ad9d3dc48 100644 (file)
@@ -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) {