diff --git a/src/ByteStream.cpp b/src/ByteStream.cpp index 14615e6fbe9e37912b30eede5c65ed63a5fd44fe..95ab024795e8a06e45a99476d0fad046b853cb13 100644 --- a/src/ByteStream.cpp +++ b/src/ByteStream.cpp @@ -177,10 +177,14 @@ ByteStreamPtr PacketLib::ByteStream::decompress(enum CompressionAlgorithms algor int buffsize = LZ4_decompress_safe((const char*)stream, (char*)tmpbuff, size(), dmax); if(!buffsize) { - cout << "LZ4 decompression error" << endl; delete tmpbuff; + throw new PacketException("LZ4 decompression error"); return 0; } + if(buffsize < 0) { + delete tmpbuff; + throw new PacketException("LZ4 decompression error: the source stream is malformed"); + } byte* decompbuff = new byte[buffsize]; memcpy(decompbuff, tmpbuff, buffsize); b = ByteStreamPtr(new ByteStream(decompbuff, buffsize, bigendian));