summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/x509_b64.c2
-rw-r--r--tests/base64-raw.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/x509_b64.c b/lib/x509_b64.c
index edfbe5c198..fcace95a6f 100644
--- a/lib/x509_b64.c
+++ b/lib/x509_b64.c
@@ -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;
}
diff --git a/tests/base64-raw.c b/tests/base64-raw.c
index 820d8744ed..8382e5012a 100644
--- a/tests/base64-raw.c
+++ b/tests/base64-raw.c
@@ -231,6 +231,12 @@ struct decode_tests_st decode_tests[] = {
.res = 0
},
{
+ .name = "dec-spaces",
+ .pem = " ",
+ .raw = {(void*)"", 0},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR
+ },
+ {
.name = "dec-invalid-data",
.pem = "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
.raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},