[Libreoffice-commits] .: package/source
package/source/xstor/ohierarchyholder.cxx |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) New commits: commit 88cc248d0d00bb00d7d686a858044663ad6c9c30 Author: Tor Lillqvist Date: Mon Dec 3 14:36:14 2012 +0200 WaE: BaseReference::_pInterface may be used uninitialized in this function Change-Id: Ia127816f994f7ce6fc7230a0a7dacaa7396ba825 diff --git a/package/source/xstor/ohierarchyholder.cxx b/package/source/xstor/ohierarchyholder.cxx index ff2dc3f..da4d231 100644 --- a/package/source/xstor/ohierarchyholder.cxx +++ b/package/source/xstor/ohierarchyholder.cxx @@ -93,7 +93,9 @@ uno::Reference< embed::XExtendedStorageStream > OHierarchyElement_Impl::GetStrea uno::Reference< embed::XExtendedStorageStream > xResult; -uno::Reference< embed::XStorage > xOwnStor = m_xOwnStorage.is() ? m_xOwnStorage +uno::Reference< embed::XStorage > xOwnStor; + +xOwnStor = m_xOwnStorage.is() ? m_xOwnStorage : uno::Reference< embed::XStorage >( m_xWeakOwnStorage.get(), uno::UNO_QUERY ); if ( !xOwnStor.is() ) throw uno::RuntimeException(); @@ -175,7 +177,9 @@ void OHierarchyElement_Impl::RemoveStreamHierarchically( OStringList_Impl& aList uno::Reference< embed::XExtendedStorageStream > xResult; -uno::Reference< embed::XStorage > xOwnStor = m_xOwnStorage.is() ? m_xOwnStorage +uno::Reference< embed::XStorage > xOwnStor; + +xOwnStor = m_xOwnStorage.is() ? m_xOwnStorage : uno::Reference< embed::XStorage >( m_xWeakOwnStorage.get(), uno::UNO_QUERY ); if ( !xOwnStor.is() ) throw uno::RuntimeException(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] .: package/source
package/source/manifest/ManifestExport.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit eac570e018e2382104b829d1c5a4312179354331 Author: Markus Mohrhard Date: Fri Oct 26 02:04:42 2012 +0200 uncommpressed stream size is now 64bit, fdo#56291 Change-Id: I13de2ea8cdd63cd2ba365a0ee02c224092d3f65f diff --git a/package/source/manifest/ManifestExport.cxx b/package/source/manifest/ManifestExport.cxx index c1e46de..51afa93 100644 --- a/package/source/manifest/ManifestExport.cxx +++ b/package/source/manifest/ManifestExport.cxx @@ -215,7 +215,7 @@ ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > xHa } else if (pValue->Name.equals (sSizeProperty) ) { -sal_Int32 nSize = 0; +sal_Int64 nSize = 0; pValue->Value >>= nSize; ::rtl::OUStringBuffer aBuffer; aBuffer.append ( nSize ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] .: package/source
package/source/manifest/ManifestExport.cxx | 112 ++--- package/source/manifest/ManifestImport.cxx | 108 +-- package/source/manifest/ManifestReader.cxx |6 - package/source/manifest/ManifestWriter.cxx |6 - package/source/xstor/ocompinstream.cxx | 64 package/source/xstor/ohierarchyholder.cxx |2 package/source/xstor/oseekinstream.cxx | 12 +-- package/source/xstor/xfactory.cxx | 28 +++ 8 files changed, 169 insertions(+), 169 deletions(-) New commits: commit e190307f9a7dd6ad40c83cf71714b3effd231b96 Author: Miklos Vajna Date: Tue Oct 23 23:34:59 2012 +0200 package: kill remaining RTL_CONSTASCII.*PARAM Change-Id: Ia53ddbfcf68524b7714fe6df447a9dbb1a68bcb7 diff --git a/package/source/manifest/ManifestExport.cxx b/package/source/manifest/ManifestExport.cxx index 9c4347d..c1e46de 100644 --- a/package/source/manifest/ManifestExport.cxx +++ b/package/source/manifest/ManifestExport.cxx @@ -41,53 +41,53 @@ using ::rtl::OUStringBuffer; ManifestExport::ManifestExport( uno::Reference< xml::sax::XDocumentHandler > xHandler, const uno::Sequence< uno::Sequence < beans::PropertyValue > >& rManList ) { -const ::rtl::OUString sFileEntryElement ( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_FILE_ENTRY ) ); -const ::rtl::OUString sManifestElement ( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_MANIFEST ) ); -const ::rtl::OUString sEncryptionDataElement( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_ENCRYPTION_DATA ) ); -const ::rtl::OUString sAlgorithmElement ( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_ALGORITHM ) ); -const ::rtl::OUString sStartKeyGenerationElement ( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_START_KEY_GENERATION ) ); -const ::rtl::OUString sKeyDerivationElement ( RTL_CONSTASCII_USTRINGPARAM ( ELEMENT_KEY_DERIVATION ) ); - -const ::rtl::OUString sCdataAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_CDATA ) ); -const ::rtl::OUString sMediaTypeAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_MEDIA_TYPE ) ); -const ::rtl::OUString sVersionAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_VERSION ) ); -const ::rtl::OUString sFullPathAttribute( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_FULL_PATH ) ); -const ::rtl::OUString sSizeAttribute( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_SIZE ) ); -const ::rtl::OUString sKeySizeAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_KEY_SIZE ) ); -const ::rtl::OUString sSaltAttribute( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_SALT ) ); -const ::rtl::OUString sInitialisationVectorAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_INITIALISATION_VECTOR ) ); -const ::rtl::OUString sIterationCountAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_ITERATION_COUNT ) ); -const ::rtl::OUString sAlgorithmNameAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_ALGORITHM_NAME ) ); -const ::rtl::OUString sStartKeyGenerationNameAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_START_KEY_GENERATION_NAME ) ); -const ::rtl::OUString sKeyDerivationNameAttribute ( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_KEY_DERIVATION_NAME ) ); -const ::rtl::OUString sChecksumTypeAttribute( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_CHECKSUM_TYPE ) ); -const ::rtl::OUString sChecksumAttribute( RTL_CONSTASCII_USTRINGPARAM ( ATTRIBUTE_CHECKSUM) ); - -const ::rtl::OUString sFullPathProperty ( RTL_CONSTASCII_USTRINGPARAM ( "FullPath" ) ); -const ::rtl::OUString sVersionProperty ( RTL_CONSTASCII_USTRINGPARAM ( "Version" ) ); -const ::rtl::OUString sMediaTypeProperty( RTL_CONSTASCII_USTRINGPARAM ( "MediaType" ) ); -const ::rtl::OUString sIterationCountProperty ( RTL_CONSTASCII_USTRINGPARAM ( "IterationCount" ) ); -const ::rtl::OUString sDerivedKeySizeProperty ( RTL_CONSTASCII_USTRINGPARAM ( "DerivedKeySize" ) ); -const ::rtl::OUString sSaltProperty ( RTL_CONSTASCII_USTRINGPARAM ( "Salt" ) ); -const ::rtl::OUString sInitialisationVectorProperty( RTL_CONSTASCII_USTRINGPARAM ( "InitialisationVector" ) ); -const ::rtl::OUString sSizeProperty ( RTL_CONSTASCII_USTRINGPARAM ( "Size" ) ); -const ::rtl::OUString sDigestProperty ( RTL_CONSTASCII_USTRINGPARAM ( "Digest" ) ); -const ::rtl::OUString sEncryptionAlgProperty( RTL_CONSTASCII_USTRINGPARAM ( "EncryptionAlgorithm" ) ); -const ::rtl::OUString sStartKeyAlgProperty ( RTL_CONSTASCII_USTRINGPARAM ( "StartKeyAlgorithm" ) ); -const ::rtl::OUString sDigestAlgProperty( RTL_CONSTASCII_USTRINGPARAM ( "DigestAlgorithm" ) ); - -const ::rtl::OUString sWhiteSpace ( RTL_CONSTASCII_USTRINGPARAM ( " " ) ); - -const ::rtl::OUString sSHA256_URL ( RTL_CONSTASCII_USTRINGPARAM ( SHA256_URL ) ); -const ::rtl::OUString sSHA1_Name ( RTL_CONSTASCII_USTRINGPARAM ( SHA1_NAME ) ); - -
[Libreoffice-commits] .: package/source
package/source/zipapi/ZipFile.cxx |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) New commits: commit 5db7ac239278634c39cbb15f0173db0524b5dcd6 Author: Fridrich Å trba Date: Mon Sep 24 09:27:15 2012 +0200 fdo#49819, fdo#54609: Do not consider timestamp differences as corruption MSO 2010 can produce a files with different timestamps in the central directory entry and local file header Change-Id: Ic6fc0b2fad96eb30babdd7e6ef4a0175936da4c5 diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx index b655d37..83984d6 100644 --- a/package/source/zipapi/ZipFile.cxx +++ b/package/source/zipapi/ZipFile.cxx @@ -693,9 +693,11 @@ sal_Bool ZipFile::readLOC( ZipEntry &rEntry ) // Do *not* compare nMethod / nHow, older versions with // encrypted streams write mismatching DEFLATE/STORE pairs // there. +// Do *not* compare timestamps, since MSO 2010 can produce documents +// with timestamp difference in the central directory entry and local +// file header. bBroken = rEntry.nVersion != nVersion || (rEntry.nFlag & ~6L) != (nFlag & ~6L) -|| rEntry.nTime != nTime || rEntry.nPathLen != nPathLen || !rEntry.sPath.equals( sLOCPath ); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] .: package/source
package/source/zipapi/ByteGrabber.cxx |8 +-- package/source/zipapi/XUnbufferedStream.cxx | 12 ++-- package/source/zipapi/ZipFile.cxx | 72 ++-- package/source/zipapi/ZipOutputStream.cxx |4 - package/source/zipapi/blowfishcontext.cxx |6 +- package/source/zipapi/sha1context.cxx |2 6 files changed, 52 insertions(+), 52 deletions(-) New commits: commit 363c1edea638a1d2cbf42e49c2021ec581740caa Author: Miklos Vajna Date: Fri Aug 31 18:02:25 2012 +0200 package: kill RTL_CONSTASCII_USTRINGPARAM in zipapi Change-Id: Ic53f613cfaa5bd4affd0c27b5ed4ed20536ee055 diff --git a/package/source/zipapi/ByteGrabber.cxx b/package/source/zipapi/ByteGrabber.cxx index 6a8fc2a..65a8b8f 100644 --- a/package/source/zipapi/ByteGrabber.cxx +++ b/package/source/zipapi/ByteGrabber.cxx @@ -64,14 +64,14 @@ sal_Int64 SAL_CALL ByteGrabber::seek( sal_Int64 location ) { sal_Int64 nLen = xSeek->getLength(); if ( location < 0 || location > nLen ) -throw lang::IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >(), 1 ); +throw lang::IllegalArgumentException(OSL_LOG_PREFIX, uno::Reference< uno::XInterface >(), 1 ); if (location > nLen ) location = nLen; xSeek->seek( location ); return location; } else -throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); +throw io::IOException(OSL_LOG_PREFIX, uno::Reference< uno::XInterface >() ); } sal_Int64 SAL_CALL ByteGrabber::getPosition( ) @@ -81,7 +81,7 @@ sal_Int64 SAL_CALL ByteGrabber::getPosition( ) if (xSeek.is() ) return xSeek->getPosition(); else -throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); +throw io::IOException(OSL_LOG_PREFIX, uno::Reference< uno::XInterface >() ); } sal_Int64 SAL_CALL ByteGrabber::getLength( ) @@ -91,7 +91,7 @@ sal_Int64 SAL_CALL ByteGrabber::getLength( ) if (xSeek.is() ) return xSeek->getLength(); else -throw io::IOException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX ) ), uno::Reference< uno::XInterface >() ); +throw io::IOException(OSL_LOG_PREFIX, uno::Reference< uno::XInterface >() ); } ByteGrabber& ByteGrabber::operator >> (sal_Int8& rInt8) diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx index d028c14..559e72f 100644 --- a/package/source/zipapi/XUnbufferedStream.cxx +++ b/package/source/zipapi/XUnbufferedStream.cxx @@ -230,15 +230,15 @@ sal_Int32 SAL_CALL XUnbufferedStream::readBytes( Sequence< sal_Int8 >& aData, sa if ( nRead > nRequestedBytes ) throw RuntimeException( -OUString( RTL_CONSTASCII_USTRINGPARAM( "Should not be possible to read more then requested!" ) ), +"Should not be possible to read more then requested!", Reference< XInterface >() ); if ( maInflater.finished() || maInflater.getLastInflateError() ) -throw ZipIOException( OUString( RTL_CONSTASCII_USTRINGPARAM( "The stream seems to be broken!" ) ), +throw ZipIOException("The stream seems to be broken!", Reference< XInterface >() ); if ( maInflater.needsDictionary() ) -throw ZipIOException( OUString( RTL_CONSTASCII_USTRINGPARAM( "Dictionaries are not supported!" ) ), +throw ZipIOException("Dictionaries are not supported!", Reference< XInterface >() ); sal_Int32 nDiff = static_cast< sal_Int32 >( mnZipEnd - mnZipCurrent ); @@ -253,7 +253,7 @@ sal_Int32 SAL_CALL XUnbufferedStream::readBytes( Sequence< sal_Int8 >& aData, sa sal_Int32 nZipRead = mxZipStream->readBytes( maCompBuffer, nToRead ); if ( nZipRead < nToRead ) -throw ZipIOException( OUString( RTL_CONSTASCII_USTRINGPARAM( "No expected data!" ) ), +throw ZipIOException("No expected data!", Reference< XInterface >() ); mnZipCurrent += nZipRead; @@ -280,7 +280,7 @@ sal_Int32 SAL_CALL XUnbufferedStream::readBytes( Sequence< sal_Int8 >& aData, sa } else { -throw ZipIOException( OUString( RTL_CONSTASCII_USTRINGPARAM( "The stream seems to be broken!" ) ), +throw ZipIOException("The stream seems to be broken!", Reference< XInterface >() );
[Libreoffice-commits] .: package/source
package/source/manifest/ManifestImport.cxx | 356 - package/source/manifest/ManifestImport.hxx |8 2 files changed, 212 insertions(+), 152 deletions(-) New commits: commit acc613a3236c61c8272bde1eadca5d8bf25f98f1 Author: Caolán McNamara Date: Mon May 28 10:35:31 2012 +0100 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( ) { } -// --- -void SAL_CALL ManifestImport::startElement( const OUString& aName, const uno::Reference< xml::sax::XAttributeList >& xAttribs ) -throw( xml::sax::SAXException, uno::RuntimeException ) +void ManifestImport::doFileEntry(StringHashMap &rConvertedAttribs) +throw( uno::RuntimeException ) { -StringHashMap aConvertedAttribs; -::rtl::OUString aConvertedName = PushNameAndNamespaces( aName, xAttribs, aConvertedAttribs ); +aSequence.realloc ( 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]; + +OUString sVersion = rConvertedAttribs[sVersionAttribute]; +if ( sVersion.getLength() ) { -aSequence.realloc ( PKG_SIZE_ENCR_MNFST ); +aSequence[nNumProperty].Name = sVersionProperty; +aSequence[nNumProperty++].Value <<= sVersion; +} -// Put full-path property first for MBA -aSequence[nNumProperty].Name = sFullPathProperty; -aSequence[nNumProperty++].Value <<= aConvertedAttribs[sFullPathAttribute]; -aSequence[nNumProperty].Name = sMediaTypeProperty; -aSequence[nNumProperty++].Value <<= aConvertedAttribs[sMediaTypeAttribute]; +OUString sSize = rConvertedAttribs[sSizeAttribute]; +if ( sSize.getLength() ) +{ +sal_Int32 nSize; +nSize = sSize.toInt32(); +aSequence[nNumProperty].Name = sSizeProperty; +aSequence[nNumProperty++].Value <<= nSize; +} +} -OUString sVersion = aConvertedAttribs[sVersionAttribute]; -if ( sVersion.getLength() ) +void ManifestImport::doEncryptionData(StringHashMap &rConvertedAttribs) +throw( uno::RuntimeException ) +{ +// If this element exists, then this stream is encrypted and we need +// to import the initialisation vector, salt and iteration count used +nDerivedKeySize = 0; +OUString aString = rConvertedAttribs[sChecksumTypeAttribute]; +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; } +else +bIgnoreEncryptData = sal_True; -OUString sSize = aConvertedAttribs[sSizeAttribute]; -if ( sSize.getLength() ) +if ( !bIgnoreEncryptData ) { -sal_Int32 nSize; -nSize = sSize.toInt32(); -aSequence[nNumProperty].Name = sSizeProperty; -aSequence[nNumProperty++].Value <<= nSize; +aString = rConvertedAttribs[sChecksumAttribute]; +uno::Sequence < sal_Int8 > aDecodeBuffer; +::sax::Converter::decodeBase64(aDecodeBuffer, aString); +aSequence[nNumProperty].Name = sDigestProperty; +aSequence[nNumProperty++].Value <<= aDecodeBuffer; } } -else if ( aStack.size() > 1 ) +} + +void ManifestImport::doAlgorithm(StringHashMap &rConvertedAttribs) +throw( uno::RuntimeException ) +{ +if ( !bIgnoreEncryptData ) { -ManifestStack::reverse_iterator aIter = aStack.rbegin(); -++aIter; +OUString aString = rConvertedAttribs[sAlgorithmNameAttribute]; +if ( aString.equals( sBlowfish_Name ) || aString.equals( sBlowfish_URL ) ) +{ +aSequence[nNumProperty].Name = sEncryptionAlgProperty; +aSequence[nNumProperty++].Value <<= xml::crypto
[Libreoffice-commits] .: package/source
package/source/zipapi/ZipFile.cxx | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) New commits: commit 78f614e5fff70d4874322255cca739f430865f0a Author: Caolán McNamara Date: Mon May 28 10:33:40 2012 +0100 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 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-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits