diff --git a/libretroshare/src/util/rsbase64.cc b/libretroshare/src/util/rsbase64.cc index 6b856888e..72ea119e8 100644 --- a/libretroshare/src/util/rsbase64.cc +++ b/libretroshare/src/util/rsbase64.cc @@ -40,6 +40,12 @@ rs_view_ptr data, size_t len, std::string& outString, bool padding, bool urlSafe ) { + if(!data || !len) + { + outString.clear(); + return; + } + const char* sDict = urlSafe ? uDict : bDict; // Workaround if input and output are the same buffer. @@ -137,6 +143,7 @@ /*static*/ size_t RsBase64::encodedSize(size_t decodedSize, bool padding) { + if(!decodedSize) return 0; if(padding) return 4 * (decodedSize + 2) / 3; return static_cast( std::ceil(4L * static_cast(decodedSize) / 3L) );