dest[destoffset++] = '\r';
dest[destoffset++] = '\n';
}
- return destoffset;
-
- } else {
+ }
+ else {
destoffset = base64_encode_block(source, sourcelen, dest, &_state);
- return destoffset + base64_encode_blockend(&(dest[destoffset]), &_state);
+ destoffset += base64_encode_blockend(&(dest[destoffset]), &_state);
}
+ dest[destoffset] = 0;
+ return destoffset;
}
int CtdlDecodeBase64(char *dest, const char *source, size_t length)
{
base64_decodestate _state;
+ int len;
base64_init_decodestate(&_state);
- return base64_decode_block(source, length, dest, &_state);
+ len = base64_decode_block(source, length, dest, &_state);
+ dest[len] = '\0';
+ return len;
}