diff --git a/libs/main/types/pibytearray.cpp b/libs/main/types/pibytearray.cpp index f3c5359d..7d064d40 100644 --- a/libs/main/types/pibytearray.cpp +++ b/libs/main/types/pibytearray.cpp @@ -198,10 +198,11 @@ PIByteArray PIByteArray::fromBase64(const PIByteArray & base64) { base64HelpStruct hs; PIByteArray ret; const int sz = base64.size_s(); - int ind = -1; + if (sz < 4) return PIByteArray(); + int ind = -1; uchar t[4]; ret.resize(sz / 4 * 3); - for (int i = 0; i < sz; i += 4) { + for (int i = 0; i < sz / 4 * 4; i += 4) { hs.setAscii(base64.data(i)); hs.getBytes(t); ret[++ind] = (t[0]);