summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-12-05 13:16:32 +0000
committerMichael Meeks <michael.meeks@suse.com>2012-12-05 15:46:05 +0000
commit1ea379e0035a325b05f91da805425ff9f871eec6 (patch)
treea89e0c13b45fe1342a8c89d023179ce54f03f51e
parent4a27bce9c49539c942af27b180ba22f83a12d8e1 (diff)
Resolves: fdo#57532 restrict page sanity check to non-storage chunks
Change-Id: I47c24131e95b9a8a691dbff4710869ba91df8306 (cherry picked from commit 4a1044229afd6b52ca10e5c55f1957b153a8c6ea) Reviewed-on: https://gerrit.libreoffice.org/1246 Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
-rw-r--r--sot/qa/cppunit/data/pass/fdo57532-1.compoundbin0 -> 25088 bytes
-rw-r--r--sot/source/sdstor/stgelem.cxx2
2 files changed, 1 insertions, 1 deletions
diff --git a/sot/qa/cppunit/data/pass/fdo57532-1.compound b/sot/qa/cppunit/data/pass/fdo57532-1.compound
new file mode 100644
index 000000000000..70068fe10c89
--- /dev/null
+++ b/sot/qa/cppunit/data/pass/fdo57532-1.compound
Binary files differ
diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx
index e0d738af5738..2ceea4dd6f62 100644
--- a/sot/source/sdstor/stgelem.cxx
+++ b/sot/source/sdstor/stgelem.cxx
@@ -412,7 +412,7 @@ sal_Bool StgEntry::Load( const void* pFrom, sal_uInt32 nBufSize )
if (n > nMaxLegalStr)
return sal_False;
- if ((nSize < 0 && cType != STG_STORAGE) || (nPage1 < 0 && !isKnownSpecial(nPage1)))
+ if ((cType != STG_STORAGE) && ((nSize < 0) || (nPage1 < 0 && !isKnownSpecial(nPage1))))
{
// the size makes no sense for the substorage
// TODO/LATER: actually the size should be an unsigned value, but in this case it would mean a stream of more than 2Gb