]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
base64: minor improvements in OOM handling and test suite
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 29 Nov 2019 08:40:55 +0000 (09:40 +0100)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 29 Nov 2019 08:40:59 +0000 (09:40 +0100)
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
lib/x509_b64.c
tests/base64-raw.c

index edfbe5c1986db06ca7c618d5a638134b4dae720f..fcace95a6f650477f1e43267879c1bd06e6a118f 100644 (file)
@@ -260,6 +260,8 @@ _gnutls_base64_decode(const uint8_t * data, size_t data_size,
 
        if (data_size == 0) {
                result->data = (unsigned char*)gnutls_strdup("");
+               if (result->data == NULL)
+                       return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
                result->size = 0;
                return 0;
        }
index 820d8744ed2a05fd4e1d6a221d9e7e608d82eac7..8382e5012a5e5b2b5fa2c811339501991e225c36 100644 (file)
@@ -230,6 +230,12 @@ struct decode_tests_st decode_tests[] = {
                .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
                .res = 0
        },
+       {
+               .name = "dec-spaces",
+               .pem = "  ",
+               .raw = {(void*)"", 0},
+               .res = GNUTLS_E_BASE64_DECODING_ERROR
+       },
        {
                .name = "dec-invalid-data",
                .pem = "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==",