summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2019-11-29 09:40:55 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2019-11-29 09:40:59 +0100
commit0b89a4b72b46b4eb3b3856103196378d2951972f (patch)
tree42fcdd62f957ad8fa28153a157a471325ac1aaa1
parenta361e10158078bf886a8dacfe3eb0af10bd74e00 (diff)
downloadgnutls-0b89a4b72b46b4eb3b3856103196378d2951972f.tar.gz
base64: minor improvements in OOM handling and test suite
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-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},