diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-03-02 20:40:44 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-03-02 21:32:10 +0000 |
commit | 9e74b1b3be096ae6fb937cbf1f382e96a33d8b1e (patch) | |
tree | 7233456af11e27bee5323af6ddaa361d1ef49358 | |
parent | 74d20cc4c3346398c17f4f4ece7e462363f71868 (diff) |
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>
-rw-r--r-- | tools/source/stream/stream.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx index d9e99b40522d..fa69f58e31e3 100644 --- a/tools/source/stream/stream.cxx +++ b/tools/source/stream/stream.cxx @@ -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 ); } |