From d7d9d3cf1a529cfe99fb1b5ae65967c54e9f23bb Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Mon, 17 Aug 2020 11:38:54 +0300 Subject: [PATCH] tdf#135799: properly load arrays in user-defined types from image This requires to reset Fixed flag temporarily, as in SbiParser::DefType for non-image case. And save the dimensions of the arrays in the custom types correctly: the dimensions are numbered from 1, not from 0. The existing unit test (that happened to not test anything actually) was fixed. Change-Id: I48c6b6d5d735d9972a2c0dd40345d5db75f87f39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100877 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- basic/source/classes/image.cxx | 12 +++- sc/qa/extras/macros-test.cxx | 63 +++++++++++++++++- .../ProtectedArrayInCustomType.ods | Bin 0 -> 14327 bytes .../extras/testdocuments/testTypePassword.ods | Bin 27812 -> 31223 bytes 4 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 sc/qa/extras/testdocuments/ProtectedArrayInCustomType.ods diff --git a/basic/source/classes/image.cxx b/basic/source/classes/image.cxx index bb4d8409573f..eb127e755f1f 100644 --- a/basic/source/classes/image.cxx +++ b/basic/source/classes/image.cxx @@ -265,7 +265,7 @@ bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion ) nCount = nMaxRecords; } - // User defined types + // User defined types; ref.: SbiParser::DefType for (sal_uInt16 i = 0; i < nCount; i++) { OUString aTypeName = r.ReadUniOrByteString(eCharSet); @@ -320,7 +320,8 @@ bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion ) else { // an array - SbxDimArray* pArray = new SbxDimArray(); + SbxDimArray* pArray = new SbxDimArray( + static_cast(aMemberType & 0x0FFF)); sal_Int16 isFixedSize; r.ReadInt16(isFixedSize); @@ -337,7 +338,12 @@ bool SbiImage::Load( SvStream& r, sal_uInt32& nVersion ) pArray->unoAddDim32(lBound, uBound); } + const SbxFlagBits nSavFlags = pTypeElem->GetFlags(); + // need to reset the FIXED flag + // when calling PutObject ( because the type will not match Object ) + pTypeElem->ResetFlag(SbxFlagBits::Fixed); pTypeElem->PutObject( pArray ); + pTypeElem->SetFlags(nSavFlags); } } @@ -538,7 +544,7 @@ bool SbiImage::Save( SvStream& r, sal_uInt32 nVer ) sal_Int32 nDims = pArray->GetDims32(); r.WriteInt32(nDims); - for (sal_Int32 d = 0; d < nDims; d++) + for (sal_Int32 d = 1; d <= nDims; d++) { sal_Int32 lBound; sal_Int32 uBound; diff --git a/sc/qa/extras/macros-test.cxx b/sc/qa/extras/macros-test.cxx index d158d8c412c5..df2a1583edd4 100644 --- a/sc/qa/extras/macros-test.cxx +++ b/sc/qa/extras/macros-test.cxx @@ -43,6 +43,7 @@ public: void testRowColumn(); void testTdf131562(); void testPasswordProtectedUnicodeString(); + void testPasswordProtectedArrayInUserType(); void testTdf107902(); void testTdf131296_legacy(); void testTdf131296_new(); @@ -58,6 +59,7 @@ public: CPPUNIT_TEST(testRowColumn); CPPUNIT_TEST(testTdf131562); CPPUNIT_TEST(testPasswordProtectedUnicodeString); + CPPUNIT_TEST(testPasswordProtectedArrayInUserType); CPPUNIT_TEST(testTdf107902); CPPUNIT_TEST(testTdf131296_legacy); CPPUNIT_TEST(testTdf131296_new); @@ -143,7 +145,7 @@ void ScMacrosTest::testPasswordProtectedStarBasic() SfxObjectShell::CallXScript( xComponent, - "vnd.sun.Star.script:MyLibrary.Module1.Main?language=Basic&location=document", + "vnd.sun.Star.script:Standard.Module1.LoadAndExecuteTest?language=Basic&location=document", aParams, aRet, aOutParamIndex, aOutParam); OUString aValue = rDoc.GetString(0,0,0); @@ -550,6 +552,65 @@ void ScMacrosTest::testPasswordProtectedUnicodeString() xCloseable->close(true); } +void ScMacrosTest::testPasswordProtectedArrayInUserType() +{ + const OUString sMacroURL( + "vnd.sun.Star.script:Protected.Module1.TestMyType?language=Basic&location=document"); + const OUString sLibName("Protected"); + + OUString aFileName; + createFileURL("ProtectedArrayInCustomType.ods", aFileName); + auto xComponent = loadFromDesktop(aFileName, "com.sun.star.sheet.SpreadsheetDocument"); + CPPUNIT_ASSERT(xComponent); + + // Check that loading password-protected macro image correctly loads array bounds + { + Any aRet; + Sequence aOutParamIndex; + Sequence aOutParam; + Sequence aParams; + + SfxObjectShell::CallXScript(xComponent, sMacroURL, aParams, aRet, aOutParamIndex, + aOutParam); + + sal_Int16 nReturnValue; + aRet >>= nReturnValue; + CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nReturnValue); + } + + // Unlock and load the library, to regenerate the image on save + css::uno::Reference xES(xComponent, UNO_QUERY_THROW); + css::uno::Reference xLC(xES->getBasicLibraries(), + UNO_QUERY_THROW); + css::uno::Reference xPasswd(xLC, UNO_QUERY_THROW); + CPPUNIT_ASSERT(xPasswd->isLibraryPasswordProtected(sLibName)); + CPPUNIT_ASSERT(!xPasswd->isLibraryPasswordVerified(sLibName)); + CPPUNIT_ASSERT(xPasswd->verifyLibraryPassword(sLibName, "password")); + xLC->loadLibrary(sLibName); + CPPUNIT_ASSERT(xLC->isLibraryLoaded(sLibName)); + + // Now check that saving stores array bounds correctly + saveAndReload(xComponent, "calc8"); + CPPUNIT_ASSERT(xComponent); + + { + Any aRet; + Sequence aOutParamIndex; + Sequence aOutParam; + Sequence aParams; + + SfxObjectShell::CallXScript(xComponent, sMacroURL, aParams, aRet, aOutParamIndex, + aOutParam); + + sal_Int16 nReturnValue; + aRet >>= nReturnValue; + CPPUNIT_ASSERT_EQUAL(sal_Int16(1), nReturnValue); + } + + css::uno::Reference xCloseable(xComponent, css::uno::UNO_QUERY_THROW); + xCloseable->close(true); +} + void ScMacrosTest::testTdf114427() { OUString aFileName; diff --git a/sc/qa/extras/testdocuments/ProtectedArrayInCustomType.ods b/sc/qa/extras/testdocuments/ProtectedArrayInCustomType.ods new file mode 100644 index 0000000000000000000000000000000000000000..5d7b1a4c2791ecab20b73bea22adf156ee5cf71d GIT binary patch literal 14327 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 delta 20140 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