summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-03-02 20:40:44 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-03-02 21:32:10 +0000
commit9e74b1b3be096ae6fb937cbf1f382e96a33d8b1e (patch)
tree7233456af11e27bee5323af6ddaa361d1ef49358 /tools
parent74d20cc4c3346398c17f4f4ece7e462363f71868 (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>
Diffstat (limited to 'tools')
-rw-r--r--tools/source/stream/stream.cxx8
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 );
}