summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-08-16 14:20:54 +0100
committerDavid Tardon <dtardon@redhat.com>2015-08-17 08:31:22 +0000
commit20e5a9e8c07ca7462b770449f3e329c1ba09eba3 (patch)
tree95ceb11cca76fb79b8bf2b52517066937717be7a
parentb9b21621cfdc742b7bb54e77e55c318d1a7b6bc5 (diff)
clip Sttbf to available data
Change-Id: Iaa6a8a8505a28cf3c24a48f832bfc618b39c3f32 (cherry picked from commit 12143f8f84b07057d67d5cd6cc9ff6063dfa41f8) Reviewed-on: https://gerrit.libreoffice.org/17785 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
-rw-r--r--sw/qa/core/data/ww8/pass/crash-2.docbin0 -> 10240 bytes
-rw-r--r--sw/source/filter/ww8/WW8Sttbf.cxx2
2 files changed, 2 insertions, 0 deletions
diff --git a/sw/qa/core/data/ww8/pass/crash-2.doc b/sw/qa/core/data/ww8/pass/crash-2.doc
new file mode 100644
index 000000000000..452e21e511f1
--- /dev/null
+++ b/sw/qa/core/data/ww8/pass/crash-2.doc
Binary files differ
diff --git a/sw/source/filter/ww8/WW8Sttbf.cxx b/sw/source/filter/ww8/WW8Sttbf.cxx
index 0fa8903cb364..7e1f82ca066d 100644
--- a/sw/source/filter/ww8/WW8Sttbf.cxx
+++ b/sw/source/filter/ww8/WW8Sttbf.cxx
@@ -36,6 +36,8 @@ namespace ww8
{
if (checkSeek(rSt, nPos))
{
+ sal_Size nRemainingSize = rSt.remainingSize();
+ nSize = std::min<sal_uInt32>(nRemainingSize, nSize);
mp_data.reset(new sal_uInt8[nSize]);
mn_size = rSt.Read(mp_data.get(), nSize);
}