[SCM] LibreOffice packaging repository branch, master, updated. libreoffice_3.5.4-7-1-g1d3a2df
The following commit has been merged in the master branch:
commit 1d3a2df4e9608e9674f340964a0daeb9d4da846c
Author: Rene Engelhard <rene@debian.org>
Date: Thu Aug 2 08:40:04 2012 +0200
remove duplicate patching of files...
diff --git a/patches/CVE-2012-2665.diff b/patches/CVE-2012-2665.diff
index 9891139..a31b610 100644
--- a/patches/CVE-2012-2665.diff
+++ b/patches/CVE-2012-2665.diff
@@ -1,32 +1,32 @@
-Date: Fri, 08 Jun 2012 10:23:44 +0100
-From: Caolán McNamara <caolanm@redhat.com>
-To: Petr Mladek <pmladek@suse.cz>
-Cc: tdf-security@lists.documentfoundation.org
-Subject: [REVIEW 3-5] Re: Is CVE-2012-2665 fixed in LO?
-
-On Thu, 2012-06-07 at 18:23 +0200, Petr Mladek wrote:
-> Hi Caolan,
->
-> I am a bit confused by all the security problems. Is CVE-2012-2665 fixed
-> in LO-3.5?
-
-Not yet. I wanted to wait to propose any more backports until the
-backlog was cleared to try and avoid confusion :-)
-
-So, I'm now requesting the following three additional commits to be
-cherry-picked to 3-5
-
-78f614e5fff70d4874322255cca739f430865f0a key-size
-acc613a3236c61c8272bde1eadca5d8bf25f98f1 tag-hierarchy
-4a7164429b727bd8fd6f183950e85e6225869364 count-and-order
-
-to address CVE-2012-2665
-
-I'd like to consider those three + the already cherry-picked
-4036ee4db7b43cac9f892c2b9a2c545f0f838747 as our canonical solution to
-CVE-2012-2665 (78f614e5fff70d4874322255cca739f430865f0a is technically
-not really relevant but I reckon its easiest to bundle it into any
-backports while we're at it to keep things simple)
+Date: Fri, 08 Jun 2012 10:23:44 +0100
+From: Caolán McNamara <caolanm@redhat.com>
+To: Petr Mladek <pmladek@suse.cz>
+Cc: tdf-security@lists.documentfoundation.org
+Subject: [REVIEW 3-5] Re: Is CVE-2012-2665 fixed in LO?
+
+On Thu, 2012-06-07 at 18:23 +0200, Petr Mladek wrote:
+> Hi Caolan,
+>
+> I am a bit confused by all the security problems. Is CVE-2012-2665 fixed
+> in LO-3.5?
+
+Not yet. I wanted to wait to propose any more backports until the
+backlog was cleared to try and avoid confusion :-)
+
+So, I'm now requesting the following three additional commits to be
+cherry-picked to 3-5
+
+78f614e5fff70d4874322255cca739f430865f0a key-size
+acc613a3236c61c8272bde1eadca5d8bf25f98f1 tag-hierarchy
+4a7164429b727bd8fd6f183950e85e6225869364 count-and-order
+
+to address CVE-2012-2665
+
+I'd like to consider those three + the already cherry-picked
+4036ee4db7b43cac9f892c2b9a2c545f0f838747 as our canonical solution to
+CVE-2012-2665 (78f614e5fff70d4874322255cca739f430865f0a is technically
+not really relevant but I reckon its easiest to bundle it into any
+backports while we're at it to keep things simple)
C.
@@ -37,12 +37,39 @@ Subject: merge three base64 encoders/decoders together
Conflicts:
- filter/source/placeware/Base64Codec.cxx
- package/source/manifest/Base64Codec.cxx
+ filter/source/placeware/Base64Codec.cxx
+ package/source/manifest/Base64Codec.cxx
Change-Id: Ic123c081fcf6ddcf5d61c5d5a3eab01db470014c
Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
----
+
+From 78f614e5fff70d4874322255cca739f430865f0a Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Mon, 28 May 2012 09:33:40 +0000
+Subject: check key size
+
+Change-Id: Ia909b0abb3ef84a9f0a14d42379f693ae9e70812
+
+From acc613a3236c61c8272bde1eadca5d8bf25f98f1 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Mon, 28 May 2012 09:35:31 +0000
+Subject: unwind manifest xml parser and follow tag hierarchy model
+
+so we validate that each tag is inside the right parent
+
+Change-Id: Ibc82aeaf6b409ef2fed7de0cd8f15c164da65e53
+
+From 4a7164429b727bd8fd6f183950e85e6225869364 Mon Sep 17 00:00:00 2001
+From: Caolán McNamara <caolanm@redhat.com>
+Date: Mon, 28 May 2012 10:43:09 +0000
+Subject: count and order of receipt of properties doesn't matter
+
+so stick imported properties into assigned slots and throw out empty ones when
+finished. Reuse existing ids for this between import and export. Shuffle
+FULLPATH to 0 as per import comment
+
+Change-Id: I516116c5327498ad043f6e2fb9bd257599ade2a2
+
diff --git a/filter/Library_placeware.mk b/filter/Library_placeware.mk
index d0af3c1..0471cd2 100644
--- a/filter/Library_placeware.mk
@@ -61,10 +88,9 @@ index d0af3c1..0471cd2 100644
filter/source/placeware/filter \
filter/source/placeware/tempfile \
diff --git a/filter/source/placeware/Base64Codec.cxx b/filter/source/placeware/Base64Codec.cxx
-deleted file mode 100644
-index 49cfcc0..0000000
+index 49cfcc0..e69de29 100644
--- a/filter/source/placeware/Base64Codec.cxx
-+++ b/dev/null
++++ b/filter/source/placeware/Base64Codec.cxx
@@ -1,206 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
@@ -273,10 +299,9 @@ index 49cfcc0..0000000
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/placeware/Base64Codec.hxx b/filter/source/placeware/Base64Codec.hxx
-deleted file mode 100644
-index b635b1e..0000000
+index b635b1e..e69de29 100644
--- a/filter/source/placeware/Base64Codec.hxx
-+++ b/dev/null
++++ b/filter/source/placeware/Base64Codec.hxx
@@ -1,50 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
@@ -375,6 +400,42 @@ index 306887e..dfce64b 100644
package/source/manifest/ManifestExport \
package/source/manifest/ManifestImport \
package/source/manifest/ManifestReader \
+diff --git a/package/inc/PackageConstants.hxx b/package/inc/PackageConstants.hxx
+index be82010..7590acd 100644
+--- a/package/inc/PackageConstants.hxx
++++ b/package/inc/PackageConstants.hxx
+@@ -40,19 +40,19 @@ const sal_Int32 n_ConstDigestLength = 1024;
+ const sal_Int32 n_ConstDigestDecrypt = 1056; // 1024 + 32
+
+ // the constants related to the manifest.xml entries
+-#define PKG_MNFST_MEDIATYPE 0
+-#define PKG_MNFST_VERSION 1
+-#define PKG_MNFST_FULLPATH 2
++#define PKG_MNFST_FULLPATH 0 //FullPath (Put full-path property first for MBA)
++#define PKG_MNFST_VERSION 1 //Version
++#define PKG_MNFST_MEDIATYPE 2 //MediaType
+
+-#define PKG_MNFST_INIVECTOR 3
+-#define PKG_MNFST_SALT 4
+-#define PKG_MNFST_ITERATION 5
+-#define PKG_MNFST_UCOMPSIZE 6
+-#define PKG_MNFST_DIGEST 7
+-#define PKG_MNFST_ENCALG 8
+-#define PKG_MNFST_STARTALG 9
+-#define PKG_MNFST_DIGESTALG 10
+-#define PKG_MNFST_DERKEYSIZE 11
++#define PKG_MNFST_INIVECTOR 3 //InitialisationVector
++#define PKG_MNFST_SALT 4 //Salt
++#define PKG_MNFST_ITERATION 5 //IterationCount
++#define PKG_MNFST_UCOMPSIZE 6 //Size
++#define PKG_MNFST_DIGEST 7 //Digest
++#define PKG_MNFST_ENCALG 8 //EncryptionAlgorithm
++#define PKG_MNFST_STARTALG 9 //StartKeyAlgorithm
++#define PKG_MNFST_DIGESTALG 10 //DigestAlgorithm
++#define PKG_MNFST_DERKEYSIZE 11 //DerivedKeySize
+
+ #define PKG_SIZE_NOENCR_MNFST 3
+ #define PKG_SIZE_ENCR_MNFST 12
diff --git a/package/prj/build.lst b/package/prj/build.lst
index e1a2c11..35b408d 100644
--- a/package/prj/build.lst
@@ -384,10 +445,9 @@ index e1a2c11..35b408d 100644
+pk package : cppu cppuhelper comphelper ucbhelper sal ZLIB:zlib LIBXSLT:libxslt sax NULL
pk package\prj nmake - all pk_prj NULL
diff --git a/package/source/manifest/Base64Codec.cxx b/package/source/manifest/Base64Codec.cxx
-deleted file mode 100644
-index 66a7f18..0000000
+index 66a7f18..e69de29 100644
--- a/package/source/manifest/Base64Codec.cxx
-+++ b/dev/null
++++ b/package/source/manifest/Base64Codec.cxx
@@ -1,204 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
@@ -594,10 +654,9 @@ index 66a7f18..0000000
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/package/source/manifest/Base64Codec.hxx b/package/source/manifest/Base64Codec.hxx
-deleted file mode 100644
-index 60bd018..0000000
+index 60bd018..e69de29 100644
--- a/package/source/manifest/Base64Codec.hxx
-+++ b/dev/null
++++ b/package/source/manifest/Base64Codec.hxx
@@ -1,48 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
@@ -688,7 +747,7 @@ index a9e9f45..94e5234 100644
xHandler->ignorableWhitespace ( sWhiteSpace );
diff --git a/package/source/manifest/ManifestImport.cxx b/package/source/manifest/ManifestImport.cxx
-index 01cf6a5..8756081 100644
+index 01cf6a5..0944d8e 100644
--- a/package/source/manifest/ManifestImport.cxx
+++ b/package/source/manifest/ManifestImport.cxx
@@ -29,7 +29,7 @@
@@ -700,95 +759,17 @@ index 01cf6a5..8756081 100644
#include <com/sun/star/xml/sax/XAttributeList.hpp>
#include <com/sun/star/xml/crypto/DigestID.hpp>
#include <com/sun/star/xml/crypto/CipherID.hpp>
-@@ -188,7 +188,7 @@ void SAL_CALL ManifestImport::startElement( const OUString& aName, const uno::Re
- {
- aString = aConvertedAttribs[sChecksumAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- Base64Codec::decodeBase64( aDecodeBuffer, aString );
-+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
- aSequence[nNumProperty].Name = sDigestProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
- }
-@@ -235,7 +235,7 @@ void SAL_CALL ManifestImport::startElement( const OUString& aName, const uno::Re
- {
- aString = aConvertedAttribs[sInitialisationVectorAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- Base64Codec::decodeBase64 ( aDecodeBuffer, aString );
-+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
- aSequence[nNumProperty].Name = sInitialisationVectorProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
- }
-@@ -250,7 +250,7 @@ void SAL_CALL ManifestImport::startElement( const OUString& aName, const uno::Re
- {
- aString = aConvertedAttribs[sSaltAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- Base64Codec::decodeBase64 ( aDecodeBuffer, aString );
-+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
- aSequence[nNumProperty].Name = sSaltProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
+@@ -44,8 +44,7 @@ using ::rtl::OUString;
---
-cgit v0.9.0.2-2-gbebe
-
-From 78f614e5fff70d4874322255cca739f430865f0a Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Mon, 28 May 2012 09:33:40 +0000
-Subject: check key size
-
-Change-Id: Ia909b0abb3ef84a9f0a14d42379f693ae9e70812
----
-diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx
-index 16d5a00..f154dfe 100644
---- a/package/source/zipapi/ZipFile.cxx
-+++ b/package/source/zipapi/ZipFile.cxx
-@@ -157,6 +157,12 @@ uno::Reference< xml::crypto::XCipherContext > ZipFile::StaticGetCipher( const un
+ // ---------------------------------------------------
+ ManifestImport::ManifestImport( vector < Sequence < PropertyValue > > & rNewManVector )
+-: nNumProperty ( 0 )
+-, bIgnoreEncryptData ( sal_False )
++: bIgnoreEncryptData ( sal_False )
+ , nDerivedKeySize( 0 )
+ , rManVector ( rNewManVector )
- try
- {
-+ if (xEncryptionData->m_nDerivedKeySize < 0)
-+ {
-+ throw ZipIOException( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Invalid derived key length!") ),
-+ uno::Reference< XInterface >() );
-+ }
-+
- uno::Sequence< sal_Int8 > aDerivedKey( xEncryptionData->m_nDerivedKeySize );
- if ( rtl_Digest_E_None != rtl_digest_PBKDF2( reinterpret_cast< sal_uInt8* >( aDerivedKey.getArray() ),
- aDerivedKey.getLength(),
-@@ -192,7 +198,7 @@ uno::Reference< xml::crypto::XCipherContext > ZipFile::StaticGetCipher( const un
- uno::Reference< XInterface >() );
- }
- }
-- catch( uno::Exception& )
-+ catch( ... )
- {
- OSL_ENSURE( sal_False, "Can not create cipher context!" );
- }
-@@ -699,7 +705,7 @@ sal_Bool ZipFile::readLOC( ZipEntry &rEntry )
- || rEntry.nPathLen != nPathLen
- || !rEntry.sPath.equals( sLOCPath );
- }
-- catch(::std::bad_alloc &)
-+ catch(...)
- {
- bBroken = sal_True;
- }
---
-cgit v0.9.0.2-2-gbebe
-
-From acc613a3236c61c8272bde1eadca5d8bf25f98f1 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Mon, 28 May 2012 09:35:31 +0000
-Subject: unwind manifest xml parser and follow tag hierarchy model
-
-so we validate that each tag is inside the right parent
-
-Change-Id: Ibc82aeaf6b409ef2fed7de0cd8f15c164da65e53
----
-diff --git a/package/source/manifest/ManifestImport.cxx b/package/source/manifest/ManifestImport.cxx
-index 5e9a310..f8590fe 100644
---- a/package/source/manifest/ManifestImport.cxx
-+++ b/package/source/manifest/ManifestImport.cxx
-@@ -123,177 +123,229 @@ void SAL_CALL ManifestImport::endDocument( )
+@@ -123,177 +122,235 @@ void SAL_CALL ManifestImport::endDocument( )
{
}
@@ -800,21 +781,20 @@ index 5e9a310..f8590fe 100644
{
- StringHashMap aConvertedAttribs;
- ::rtl::OUString aConvertedName = PushNameAndNamespaces( aName, xAttribs, aConvertedAttribs );
-+ aSequence.realloc ( PKG_SIZE_ENCR_MNFST );
++ aSequence.resize(PKG_SIZE_ENCR_MNFST);
- if ( aConvertedName == sFileEntryElement )
-+ // Put full-path property first for MBA
-+ aSequence[nNumProperty].Name = sFullPathProperty;
-+ aSequence[nNumProperty++].Value <<= rConvertedAttribs[sFullPathAttribute];
-+ aSequence[nNumProperty].Name = sMediaTypeProperty;
-+ aSequence[nNumProperty++].Value <<= rConvertedAttribs[sMediaTypeAttribute];
++ aSequence[PKG_MNFST_FULLPATH].Name = sFullPathProperty;
++ aSequence[PKG_MNFST_FULLPATH].Value <<= rConvertedAttribs[sFullPathAttribute];
++ aSequence[PKG_MNFST_MEDIATYPE].Name = sMediaTypeProperty;
++ aSequence[PKG_MNFST_MEDIATYPE].Value <<= rConvertedAttribs[sMediaTypeAttribute];
+
+ OUString sVersion = rConvertedAttribs[sVersionAttribute];
+ if ( sVersion.getLength() )
{
- aSequence.realloc ( PKG_SIZE_ENCR_MNFST );
-+ aSequence[nNumProperty].Name = sVersionProperty;
-+ aSequence[nNumProperty++].Value <<= sVersion;
++ aSequence[PKG_MNFST_VERSION].Name = sVersionProperty;
++ aSequence[PKG_MNFST_VERSION].Value <<= sVersion;
+ }
- // Put full-path property first for MBA
@@ -825,10 +805,9 @@ index 5e9a310..f8590fe 100644
+ OUString sSize = rConvertedAttribs[sSizeAttribute];
+ if ( sSize.getLength() )
+ {
-+ sal_Int32 nSize;
-+ nSize = sSize.toInt32();
-+ aSequence[nNumProperty].Name = sSizeProperty;
-+ aSequence[nNumProperty++].Value <<= nSize;
++ sal_Int32 nSize = sSize.toInt32();
++ aSequence[PKG_MNFST_UCOMPSIZE].Name = sSizeProperty;
++ aSequence[PKG_MNFST_UCOMPSIZE].Value <<= nSize;
+ }
+}
@@ -844,17 +823,17 @@ index 5e9a310..f8590fe 100644
+ if ( !bIgnoreEncryptData )
+ {
+ if ( aString.equals( sSHA1_1k_Name ) || aString.equals( sSHA1_1k_URL ) )
-+ {
-+ aSequence[nNumProperty].Name = sDigestAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA1_1K;
-+ }
-+ else if ( aString.equals( sSHA256_1k_URL ) )
{
- aSequence[nNumProperty].Name = sVersionProperty;
- aSequence[nNumProperty++].Value <<= sVersion;
-+ aSequence[nNumProperty].Name = sDigestAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA256_1K;
++ aSequence[PKG_MNFST_DIGESTALG].Name = sDigestAlgProperty;
++ aSequence[PKG_MNFST_DIGESTALG].Value <<= xml::crypto::DigestID::SHA1_1K;
}
++ else if ( aString.equals( sSHA256_1k_URL ) )
++ {
++ aSequence[PKG_MNFST_DIGESTALG].Name = sDigestAlgProperty;
++ aSequence[PKG_MNFST_DIGESTALG].Value <<= xml::crypto::DigestID::SHA256_1K;
++ }
+ else
+ bIgnoreEncryptData = sal_True;
@@ -869,8 +848,8 @@ index 5e9a310..f8590fe 100644
+ aString = rConvertedAttribs[sChecksumAttribute];
+ uno::Sequence < sal_Int8 > aDecodeBuffer;
+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-+ aSequence[nNumProperty].Name = sDigestProperty;
-+ aSequence[nNumProperty++].Value <<= aDecodeBuffer;
++ aSequence[PKG_MNFST_DIGEST].Name = sDigestProperty;
++ aSequence[PKG_MNFST_DIGEST].Value <<= aDecodeBuffer;
}
}
- else if ( aStack.size() > 1 )
@@ -886,27 +865,27 @@ index 5e9a310..f8590fe 100644
+ OUString aString = rConvertedAttribs[sAlgorithmNameAttribute];
+ if ( aString.equals( sBlowfish_Name ) || aString.equals( sBlowfish_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::BLOWFISH_CFB_8;
++ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
++ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::BLOWFISH_CFB_8;
+ }
+ else if ( aString.equals( sAES256_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
++ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
++ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
+ OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 32, "Unexpected derived key length!" );
+ nDerivedKeySize = 32;
+ }
+ else if ( aString.equals( sAES192_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
++ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
++ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
+ OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 24, "Unexpected derived key length!" );
+ nDerivedKeySize = 24;
+ }
+ else if ( aString.equals( sAES128_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
++ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
++ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
+ OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 16, "Unexpected derived key length!" );
+ nDerivedKeySize = 16;
+ }
@@ -941,7 +920,7 @@ index 5e9a310..f8590fe 100644
- {
- aString = aConvertedAttribs[sChecksumAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
+- Base64Codec::decodeBase64( aDecodeBuffer, aString );
- aSequence[nNumProperty].Name = sDigestProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
- }
@@ -950,8 +929,8 @@ index 5e9a310..f8590fe 100644
+ aString = rConvertedAttribs[sInitialisationVectorAttribute];
+ uno::Sequence < sal_Int8 > aDecodeBuffer;
+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-+ aSequence[nNumProperty].Name = sInitialisationVectorProperty;
-+ aSequence[nNumProperty++].Value <<= aDecodeBuffer;
++ aSequence[PKG_MNFST_INIVECTOR].Name = sInitialisationVectorProperty;
++ aSequence[PKG_MNFST_INIVECTOR].Value <<= aDecodeBuffer;
}
- else if ( aIter->m_aConvertedName.equals( sEncryptionDataElement ) )
+ }
@@ -1003,7 +982,7 @@ index 5e9a310..f8590fe 100644
- {
- aString = aConvertedAttribs[sInitialisationVectorAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
+- Base64Codec::decodeBase64 ( aDecodeBuffer, aString );
- aSequence[nNumProperty].Name = sInitialisationVectorProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
- }
@@ -1013,12 +992,12 @@ index 5e9a310..f8590fe 100644
+ aString = rConvertedAttribs[sSaltAttribute];
+ uno::Sequence < sal_Int8 > aDecodeBuffer;
+ ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-+ aSequence[nNumProperty].Name = sSaltProperty;
-+ aSequence[nNumProperty++].Value <<= aDecodeBuffer;
++ aSequence[PKG_MNFST_SALT].Name = sSaltProperty;
++ aSequence[PKG_MNFST_SALT].Value <<= aDecodeBuffer;
+
+ aString = rConvertedAttribs[sIterationCountAttribute];
-+ aSequence[nNumProperty].Name = sIterationCountProperty;
-+ aSequence[nNumProperty++].Value <<= aString.toInt32();
++ aSequence[PKG_MNFST_ITERATION].Name = sIterationCountProperty;
++ aSequence[PKG_MNFST_ITERATION].Value <<= aString.toInt32();
+
+ aString = rConvertedAttribs[sKeySizeAttribute];
+ if ( aString.getLength() )
@@ -1030,7 +1009,7 @@ index 5e9a310..f8590fe 100644
- {
- aString = aConvertedAttribs[sSaltAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
-- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
+- Base64Codec::decodeBase64 ( aDecodeBuffer, aString );
- aSequence[nNumProperty].Name = sSaltProperty;
- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
-
@@ -1081,8 +1060,8 @@ index 5e9a310..f8590fe 100644
+ else if ( nDerivedKeySize != 16 )
+ OSL_ENSURE( sal_False, "Default derived key length differs from the expected one!" );
+
-+ aSequence[nNumProperty].Name = sDerivedKeySizeProperty;
-+ aSequence[nNumProperty++].Value <<= nDerivedKeySize;
++ aSequence[PKG_MNFST_DERKEYSIZE].Name = sDerivedKeySizeProperty;
++ aSequence[PKG_MNFST_DERKEYSIZE].Value <<= nDerivedKeySize;
+ }
+ else
+ bIgnoreEncryptData = sal_True;
@@ -1095,13 +1074,13 @@ index 5e9a310..f8590fe 100644
+ OUString aString = rConvertedAttribs[sStartKeyAlgNameAttribute];
+ if ( aString.equals( sSHA256_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sStartKeyAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA256;
++ aSequence[PKG_MNFST_STARTALG].Name = sStartKeyAlgProperty;
++ aSequence[PKG_MNFST_STARTALG].Value <<= xml::crypto::DigestID::SHA256;
+ }
+ else if ( aString.equals( sSHA1_Name ) || aString.equals( sSHA1_URL ) )
+ {
-+ aSequence[nNumProperty].Name = sStartKeyAlgProperty;
-+ aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA1;
++ aSequence[PKG_MNFST_STARTALG].Name = sStartKeyAlgProperty;
++ aSequence[PKG_MNFST_STARTALG].Value <<= xml::crypto::DigestID::SHA1;
+ }
+ else
+ bIgnoreEncryptData = sal_True;
@@ -1133,7 +1112,7 @@ index 5e9a310..f8590fe 100644
+ else
+ aStack.back().m_bValid = false;
+ break;
-+ }
+ }
+ case 3:
+ {
+ ManifestStack::reverse_iterator aIter = aStack.rbegin();
@@ -1163,284 +1142,22 @@ index 5e9a310..f8590fe 100644
+ else
+ aStack.back().m_bValid = false;
+ break;
- }
++ }
+ default:
+ aStack.back().m_bValid = false;
+ break;
- }
- }
-
-diff --git a/package/source/manifest/ManifestImport.hxx b/package/source/manifest/ManifestImport.hxx
-index 1c646a7..5681f45 100644
---- a/package/source/manifest/ManifestImport.hxx
-+++ b/package/source/manifest/ManifestImport.hxx
-@@ -46,10 +46,12 @@ struct ManifestScopeEntry
- {
- ::rtl::OUString m_aConvertedName;
- StringHashMap m_aNamespaces;
-+ bool m_bValid;
-
- ManifestScopeEntry( const ::rtl::OUString& aConvertedName, const StringHashMap& aNamespaces )
- : m_aConvertedName( aConvertedName )
- , m_aNamespaces( aNamespaces )
-+ , m_bValid( true )
- {}
-
- ~ManifestScopeEntry()
-@@ -148,6 +150,12 @@ public:
- throw(::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setDocumentLocator( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator >& xLocator )
- throw(::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
-+private:
-+ void doFileEntry(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
-+ void doEncryptionData(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
-+ void doAlgorithm(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
-+ void doKeyDerivation(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
-+ void doStartKeyAlg(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
- };
- #endif
-
---
-cgit v0.9.0.2-2-gbebe
-
-From 4a7164429b727bd8fd6f183950e85e6225869364 Mon Sep 17 00:00:00 2001
-From: Caolán McNamara <caolanm@redhat.com>
-Date: Mon, 28 May 2012 10:43:09 +0000
-Subject: count and order of receipt of properties doesn't matter
-
-so stick imported properties into assigned slots and throw out empty ones when
-finished. Reuse existing ids for this between import and export. Shuffle
-FULLPATH to 0 as per import comment
-
-Change-Id: I516116c5327498ad043f6e2fb9bd257599ade2a2
----
-diff --git a/package/inc/PackageConstants.hxx b/package/inc/PackageConstants.hxx
-index be82010..7590acd 100644
---- a/package/inc/PackageConstants.hxx
-+++ b/package/inc/PackageConstants.hxx
-@@ -40,19 +40,19 @@ const sal_Int32 n_ConstDigestLength = 1024;
- const sal_Int32 n_ConstDigestDecrypt = 1056; // 1024 + 32
-
- // the constants related to the manifest.xml entries
--#define PKG_MNFST_MEDIATYPE 0
--#define PKG_MNFST_VERSION 1
--#define PKG_MNFST_FULLPATH 2
-+#define PKG_MNFST_FULLPATH 0 //FullPath (Put full-path property first for MBA)
-+#define PKG_MNFST_VERSION 1 //Version
-+#define PKG_MNFST_MEDIATYPE 2 //MediaType
-
--#define PKG_MNFST_INIVECTOR 3
--#define PKG_MNFST_SALT 4
--#define PKG_MNFST_ITERATION 5
--#define PKG_MNFST_UCOMPSIZE 6
--#define PKG_MNFST_DIGEST 7
--#define PKG_MNFST_ENCALG 8
--#define PKG_MNFST_STARTALG 9
--#define PKG_MNFST_DIGESTALG 10
--#define PKG_MNFST_DERKEYSIZE 11
-+#define PKG_MNFST_INIVECTOR 3 //InitialisationVector
-+#define PKG_MNFST_SALT 4 //Salt
-+#define PKG_MNFST_ITERATION 5 //IterationCount
-+#define PKG_MNFST_UCOMPSIZE 6 //Size
-+#define PKG_MNFST_DIGEST 7 //Digest
-+#define PKG_MNFST_ENCALG 8 //EncryptionAlgorithm
-+#define PKG_MNFST_STARTALG 9 //StartKeyAlgorithm
-+#define PKG_MNFST_DIGESTALG 10 //DigestAlgorithm
-+#define PKG_MNFST_DERKEYSIZE 11 //DerivedKeySize
-
- #define PKG_SIZE_NOENCR_MNFST 3
- #define PKG_SIZE_ENCR_MNFST 12
-diff --git a/package/source/manifest/ManifestImport.cxx b/package/source/manifest/ManifestImport.cxx
-index f8590fe..ac6c3ef 100644
---- a/package/source/manifest/ManifestImport.cxx
-+++ b/package/source/manifest/ManifestImport.cxx
-@@ -44,8 +44,7 @@ using ::rtl::OUString;
-
- // ---------------------------------------------------
- ManifestImport::ManifestImport( vector < Sequence < PropertyValue > > & rNewManVector )
--: nNumProperty ( 0 )
--, bIgnoreEncryptData ( sal_False )
-+: bIgnoreEncryptData ( sal_False )
- , nDerivedKeySize( 0 )
- , rManVector ( rNewManVector )
-
-@@ -126,28 +125,26 @@ void SAL_CALL ManifestImport::endDocument( )
- void ManifestImport::doFileEntry(StringHashMap &rConvertedAttribs)
- throw( uno::RuntimeException )
- {
-- aSequence.realloc ( PKG_SIZE_ENCR_MNFST );
-+ aSequence.resize(PKG_SIZE_ENCR_MNFST);
-
-- // Put full-path property first for MBA
-- aSequence[nNumProperty].Name = sFullPathProperty;
-- aSequence[nNumProperty++].Value <<= rConvertedAttribs[sFullPathAttribute];
-- aSequence[nNumProperty].Name = sMediaTypeProperty;
-- aSequence[nNumProperty++].Value <<= rConvertedAttribs[sMediaTypeAttribute];
-+ aSequence[PKG_MNFST_FULLPATH].Name = sFullPathProperty;
-+ aSequence[PKG_MNFST_FULLPATH].Value <<= rConvertedAttribs[sFullPathAttribute];
-+ aSequence[PKG_MNFST_MEDIATYPE].Name = sMediaTypeProperty;
-+ aSequence[PKG_MNFST_MEDIATYPE].Value <<= rConvertedAttribs[sMediaTypeAttribute];
-
- OUString sVersion = rConvertedAttribs[sVersionAttribute];
- if ( sVersion.getLength() )
- {
-- aSequence[nNumProperty].Name = sVersionProperty;
-- aSequence[nNumProperty++].Value <<= sVersion;
-+ aSequence[PKG_MNFST_VERSION].Name = sVersionProperty;
-+ aSequence[PKG_MNFST_VERSION].Value <<= sVersion;
- }
-
- OUString sSize = rConvertedAttribs[sSizeAttribute];
- if ( sSize.getLength() )
- {
-- sal_Int32 nSize;
-- nSize = sSize.toInt32();
-- aSequence[nNumProperty].Name = sSizeProperty;
-- aSequence[nNumProperty++].Value <<= nSize;
-+ sal_Int32 nSize = sSize.toInt32();
-+ aSequence[PKG_MNFST_UCOMPSIZE].Name = sSizeProperty;
-+ aSequence[PKG_MNFST_UCOMPSIZE].Value <<= nSize;
- }
- }
-
-@@ -162,13 +159,13 @@ void ManifestImport::doEncryptionData(StringHashMap &rConvertedAttribs)
- {
- if ( aString.equals( sSHA1_1k_Name ) || aString.equals( sSHA1_1k_URL ) )
- {
-- aSequence[nNumProperty].Name = sDigestAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA1_1K;
-+ aSequence[PKG_MNFST_DIGESTALG].Name = sDigestAlgProperty;
-+ aSequence[PKG_MNFST_DIGESTALG].Value <<= xml::crypto::DigestID::SHA1_1K;
- }
- else if ( aString.equals( sSHA256_1k_URL ) )
- {
-- aSequence[nNumProperty].Name = sDigestAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA256_1K;
-+ aSequence[PKG_MNFST_DIGESTALG].Name = sDigestAlgProperty;
-+ aSequence[PKG_MNFST_DIGESTALG].Value <<= xml::crypto::DigestID::SHA256_1K;
- }
- else
- bIgnoreEncryptData = sal_True;
-@@ -178,8 +175,8 @@ void ManifestImport::doEncryptionData(StringHashMap &rConvertedAttribs)
- aString = rConvertedAttribs[sChecksumAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-- aSequence[nNumProperty].Name = sDigestProperty;
-- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
-+ aSequence[PKG_MNFST_DIGEST].Name = sDigestProperty;
-+ aSequence[PKG_MNFST_DIGEST].Value <<= aDecodeBuffer;
- }
- }
- }
-@@ -192,27 +189,27 @@ void ManifestImport::doAlgorithm(StringHashMap &rConvertedAttribs)
- OUString aString = rConvertedAttribs[sAlgorithmNameAttribute];
- if ( aString.equals( sBlowfish_Name ) || aString.equals( sBlowfish_URL ) )
- {
-- aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::BLOWFISH_CFB_8;
-+ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
-+ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::BLOWFISH_CFB_8;
- }
- else if ( aString.equals( sAES256_URL ) )
- {
-- aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
-+ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
-+ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
- OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 32, "Unexpected derived key length!" );
- nDerivedKeySize = 32;
- }
- else if ( aString.equals( sAES192_URL ) )
- {
-- aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
-+ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
-+ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
- OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 24, "Unexpected derived key length!" );
- nDerivedKeySize = 24;
- }
- else if ( aString.equals( sAES128_URL ) )
- {
-- aSequence[nNumProperty].Name = sEncryptionAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
-+ aSequence[PKG_MNFST_ENCALG].Name = sEncryptionAlgProperty;
-+ aSequence[PKG_MNFST_ENCALG].Value <<= xml::crypto::CipherID::AES_CBC_W3C_PADDING;
- OSL_ENSURE( !nDerivedKeySize || nDerivedKeySize == 16, "Unexpected derived key length!" );
- nDerivedKeySize = 16;
- }
-@@ -224,8 +221,8 @@ void ManifestImport::doAlgorithm(StringHashMap &rConvertedAttribs)
- aString = rConvertedAttribs[sInitialisationVectorAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-- aSequence[nNumProperty].Name = sInitialisationVectorProperty;
-- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
-+ aSequence[PKG_MNFST_INIVECTOR].Name = sInitialisationVectorProperty;
-+ aSequence[PKG_MNFST_INIVECTOR].Value <<= aDecodeBuffer;
- }
- }
- }
-@@ -241,12 +238,12 @@ void ManifestImport::doKeyDerivation(StringHashMap &rConvertedAttribs)
- aString = rConvertedAttribs[sSaltAttribute];
- uno::Sequence < sal_Int8 > aDecodeBuffer;
- ::sax::Converter::decodeBase64(aDecodeBuffer, aString);
-- aSequence[nNumProperty].Name = sSaltProperty;
-- aSequence[nNumProperty++].Value <<= aDecodeBuffer;
-+ aSequence[PKG_MNFST_SALT].Name = sSaltProperty;
-+ aSequence[PKG_MNFST_SALT].Value <<= aDecodeBuffer;
-
- aString = rConvertedAttribs[sIterationCountAttribute];
-- aSequence[nNumProperty].Name = sIterationCountProperty;
-- aSequence[nNumProperty++].Value <<= aString.toInt32();
-+ aSequence[PKG_MNFST_ITERATION].Name = sIterationCountProperty;
-+ aSequence[PKG_MNFST_ITERATION].Value <<= aString.toInt32();
-
- aString = rConvertedAttribs[sKeySizeAttribute];
- if ( aString.getLength() )
-@@ -260,8 +257,8 @@ void ManifestImport::doKeyDerivation(StringHashMap &rConvertedAttribs)
- else if ( nDerivedKeySize != 16 )
- OSL_ENSURE( sal_False, "Default derived key length differs from the expected one!" );
-
-- aSequence[nNumProperty].Name = sDerivedKeySizeProperty;
-- aSequence[nNumProperty++].Value <<= nDerivedKeySize;
-+ aSequence[PKG_MNFST_DERKEYSIZE].Name = sDerivedKeySizeProperty;
-+ aSequence[PKG_MNFST_DERKEYSIZE].Value <<= nDerivedKeySize;
- }
- else
- bIgnoreEncryptData = sal_True;
-@@ -274,13 +271,13 @@ void ManifestImport::doStartKeyAlg(StringHashMap &rConvertedAttribs)
- OUString aString = rConvertedAttribs[sStartKeyAlgNameAttribute];
- if ( aString.equals( sSHA256_URL ) )
- {
-- aSequence[nNumProperty].Name = sStartKeyAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA256;
-+ aSequence[PKG_MNFST_STARTALG].Name = sStartKeyAlgProperty;
-+ aSequence[PKG_MNFST_STARTALG].Value <<= xml::crypto::DigestID::SHA256;
- }
- else if ( aString.equals( sSHA1_Name ) || aString.equals( sSHA1_URL ) )
- {
-- aSequence[nNumProperty].Name = sStartKeyAlgProperty;
-- aSequence[nNumProperty++].Value <<= xml::crypto::DigestID::SHA1;
-+ aSequence[PKG_MNFST_STARTALG].Name = sStartKeyAlgProperty;
-+ aSequence[PKG_MNFST_STARTALG].Value <<= xml::crypto::DigestID::SHA1;
- }
- else
- bIgnoreEncryptData = sal_True;
-@@ -349,6 +346,14 @@ void SAL_CALL ManifestImport::startElement( const OUString& aName, const uno::Re
- }
- }
-
++ }
++}
++
+namespace
+{
+ bool isEmpty(const com::sun::star::beans::PropertyValue &rProp)
+ {
+ return rProp.Name.isEmpty();
-+ }
-+}
-+
- // ---------------------------------------------------
- void SAL_CALL ManifestImport::endElement( const OUString& aName )
- throw( xml::sax::SAXException, uno::RuntimeException )
-@@ -356,12 +361,16 @@ void SAL_CALL ManifestImport::endElement( const OUString& aName )
+ }
+ }
+
+@@ -304,12 +361,16 @@ void SAL_CALL ManifestImport::endElement( const OUString& aName )
::rtl::OUString aConvertedName = ConvertName( aName );
if ( !aStack.empty() && aStack.rbegin()->m_aConvertedName.equals( aConvertedName ) )
{
@@ -1462,7 +1179,7 @@ index f8590fe..ac6c3ef 100644
aStack.pop_back();
diff --git a/package/source/manifest/ManifestImport.hxx b/package/source/manifest/ManifestImport.hxx
-index 5681f45..68afefd 100644
+index 1c646a7..68afefd 100644
--- a/package/source/manifest/ManifestImport.hxx
+++ b/package/source/manifest/ManifestImport.hxx
@@ -31,6 +31,7 @@
@@ -1473,7 +1190,20 @@ index 5681f45..68afefd 100644
#include <vector>
#include <HashMaps.hxx>
-@@ -63,8 +64,7 @@ typedef ::std::vector< ManifestScopeEntry > ManifestStack;
+@@ -46,10 +47,12 @@ struct ManifestScopeEntry
+ {
+ ::rtl::OUString m_aConvertedName;
+ StringHashMap m_aNamespaces;
++ bool m_bValid;
+
+ ManifestScopeEntry( const ::rtl::OUString& aConvertedName, const StringHashMap& aNamespaces )
+ : m_aConvertedName( aConvertedName )
+ , m_aNamespaces( aNamespaces )
++ , m_bValid( true )
+ {}
+
+ ~ManifestScopeEntry()
+@@ -61,8 +64,7 @@ typedef ::std::vector< ManifestScopeEntry > ManifestStack;
class ManifestImport : public cppu::WeakImplHelper1 < com::sun::star::xml::sax::XDocumentHandler >
{
protected:
@@ -1483,5 +1213,51 @@ index 5681f45..68afefd 100644
ManifestStack aStack;
sal_Bool bIgnoreEncryptData;
sal_Int32 nDerivedKeySize;
---
-cgit v0.9.0.2-2-gbebe
+@@ -148,6 +150,12 @@ public:
+ throw(::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setDocumentLocator( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator >& xLocator )
+ throw(::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
++private:
++ void doFileEntry(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
++ void doEncryptionData(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
++ void doAlgorithm(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
++ void doKeyDerivation(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
++ void doStartKeyAlg(StringHashMap &rConvertedAttribs) throw(::com::sun::star::uno::RuntimeException);
+ };
+ #endif
+
+diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx
+index 16d5a00..f154dfe 100644
+--- a/package/source/zipapi/ZipFile.cxx
++++ b/package/source/zipapi/ZipFile.cxx
+@@ -157,6 +157,12 @@ uno::Reference< xml::crypto::XCipherContext > ZipFile::StaticGetCipher( const un
+
+ try
+ {
++ if (xEncryptionData->m_nDerivedKeySize < 0)
++ {
++ throw ZipIOException( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Invalid derived key length!") ),
++ uno::Reference< XInterface >() );
++ }
++
+ uno::Sequence< sal_Int8 > aDerivedKey( xEncryptionData->m_nDerivedKeySize );
+ if ( rtl_Digest_E_None != rtl_digest_PBKDF2( reinterpret_cast< sal_uInt8* >( aDerivedKey.getArray() ),
+ aDerivedKey.getLength(),
+@@ -192,7 +198,7 @@ uno::Reference< xml::crypto::XCipherContext > ZipFile::StaticGetCipher( const un
+ uno::Reference< XInterface >() );
+ }
+ }
+- catch( uno::Exception& )
++ catch( ... )
+ {
+ OSL_ENSURE( sal_False, "Can not create cipher context!" );
+ }
+@@ -699,7 +705,7 @@ sal_Bool ZipFile::readLOC( ZipEntry &rEntry )
+ || rEntry.nPathLen != nPathLen
+ || !rEntry.sPath.equals( sLOCPath );
+ }
+- catch(::std::bad_alloc &)
++ catch(...)
+ {
+ bBroken = sal_True;
+ }
--
LibreOffice packaging repository
Reply to: