diff options
Diffstat (limited to 'package/source/zipapi/XUnbufferedStream.cxx')
-rw-r--r-- | package/source/zipapi/XUnbufferedStream.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx index 9f289baab86e..d028c147c76d 100644 --- a/package/source/zipapi/XUnbufferedStream.cxx +++ b/package/source/zipapi/XUnbufferedStream.cxx @@ -78,6 +78,10 @@ XUnbufferedStream::XUnbufferedStream( mnZipSize = maEntry.nSize; mnZipEnd = maEntry.nMethod == DEFLATED ? maEntry.nOffset + maEntry.nCompressedSize : maEntry.nOffset + maEntry.nSize; } + + if (mnZipSize < 0) + throw ZipIOException(OUString("The stream seems to be broken!"), uno::Reference< XInterface >()); + sal_Bool bHaveEncryptData = ( rData.is() && rData->m_aSalt.getLength() && rData->m_aInitVector.getLength() && rData->m_nIterationCount != 0 ) ? sal_True : sal_False; sal_Bool bMustDecrypt = ( nStreamMode == UNBUFF_STREAM_DATA && bHaveEncryptData && bIsEncrypted ) ? sal_True : sal_False; |