Added SILC Thread Queue API
[silc.git] / lib / silcutil / silcbase64.c
index c5c4242e8a1c3d65532541973479054f7f089963..ba9b2c8de95f20f8cf1e6b52c19149ab0473a43b 100644 (file)
@@ -36,6 +36,8 @@ char *silc_base64_encode(SilcStack stack, unsigned char *data, SilcUInt32 len)
   j = 0;
 
   pem = silc_scalloc(stack, ((len * 8 + 5) / 6) + 5, sizeof(*pem));
+  if (!pem)
+    return NULL;
 
   for (i = 0; i < len; i++) {
     c = data[i];
@@ -127,6 +129,8 @@ unsigned char *silc_base64_decode(SilcStack stack,
     len = base64_len;
 
   data = silc_scalloc(stack, ((len * 6) / 8), sizeof(*data));
+  if (!data)
+    return NULL;
 
   for (i = 0; i < len; i++) {
     c = base64[i];
@@ -151,9 +155,10 @@ unsigned char *silc_base64_decode(SilcStack stack,
     }
   }
 
-  switch(char_count) {
+  switch (char_count) {
   case 1:
     silc_sfree(stack, data);
+    silc_set_errno(SILC_ERR_BAD_ENCODING);
     return NULL;
     break;
   case 2: