readonly SvMemoryStream shouldn't allow resize

Change-Id: I4cd1969cc961d48f904460371ab0a0f960bdea1e
Reviewed-on: https://gerrit.libreoffice.org/34832
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara
2017-03-02 20:40:44 +00:00
parent 74d20cc4c3
commit 9e74b1b3be

View File

@@ -1830,7 +1830,7 @@ bool SvMemoryStream::AllocateMemory( std::size_t nNewSize )
// (using Bozo algorithm)
bool SvMemoryStream::ReAllocateMemory( long nDiff )
{
if (!bOwnsData)
if (!m_isWritable || !bOwnsData)
return false;
bool bRetVal = false;
@@ -1916,6 +1916,12 @@ void* SvMemoryStream::SwitchBuffer()
void SvMemoryStream::SetSize(sal_uInt64 const nNewSize)
{
if (!m_isWritable)
{
SetError(SVSTREAM_INVALID_HANDLE);
return;
}
long nDiff = (long)nNewSize - (long)nSize;
ReAllocateMemory( nDiff );
}