office-gobmx/libcmis/libcmis-0.3.0.patch
Cédric Bosdonnat 7a6f5186a8 fdo#64577, CMIS: fixed crasher in libcmis
The crash is handled, but the huge files' size won't be properly handled
on 32bits builds: would require a libcmis API change.

Change-Id: I8ef1190a4d1de7d91a67ec20330db9e1747dfdc2
2013-05-16 15:11:19 +02:00

35 lines
1.8 KiB
Diff

diff --git src/libcmis/ws-soap.cxx src/libcmis/ws-soap.cxx
index e8efd67..decb79a 100644
--- src/libcmis/ws-soap.cxx
+++ src/libcmis/ws-soap.cxx
@@ -279,7 +279,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
boost::posix_time::ptime expires( created );
expires = expires + boost::gregorian::days( 1 );
string createdStr = libcmis::writeDateTime( created );
- xmlChar* expiresStr = BAD_CAST( libcmis::writeDateTime( expires ).c_str( ) );
+ string expiresStr = libcmis::writeDateTime( expires );
xmlTextWriterStartElement( writer, BAD_CAST( "S:Envelope" ) );
xmlTextWriterWriteAttribute( writer, BAD_CAST( "xmlns:S" ), BAD_CAST( NS_SOAP_ENV_URL ) );
@@ -296,7 +296,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
xmlTextWriterWriteRaw( writer, BAD_CAST( createdStr.c_str( ) ) );
xmlTextWriterEndElement( writer ); // End of Created
xmlTextWriterStartElement( writer, BAD_CAST( "wsse:Expires" ) );
- xmlTextWriterWriteRaw( writer, expiresStr );
+ xmlTextWriterWriteRaw( writer, BAD_CAST( expiresStr.c_str() ) );
xmlTextWriterEndElement( writer ); // End of Expires
xmlTextWriterEndElement( writer ); // End of Timestamp
diff --git src/libcmis/document.cxx src/libcmis/document.cxx
index 7c2a8e6..e7014cb 100644
--- src/libcmis/document.cxx
+++ src/libcmis/document.cxx
@@ -78,7 +78,7 @@ namespace libcmis
{
long contentLength = 0;
map< string, libcmis::PropertyPtr >::const_iterator it = getProperties( ).find( string( "cmis:contentStreamLength" ) );
- if ( it != getProperties( ).end( ) && !it->second->getStrings( ).empty( ) )
+ if ( it != getProperties( ).end( ) && !it->second->getLongs( ).empty( ) )
contentLength = it->second->getLongs( ).front( );
return contentLength;
}