[Libreoffice-commits] .: Branch 'libreoffice-3-6' - svtools/source

Petr Mladek pmladek at kemper.freedesktop.org
Fri Jul 27 01:42:26 PDT 2012


 svtools/source/misc/embedhlp.cxx |   25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

New commits:
commit 6ef2f2503b5a2d52c2ee9cb1b9415acc696fca41
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Jul 26 16:35:43 2012 +0100

    discard broken embedded object previews
    
    Change-Id: I4f632545d383c4887342aa2959987d4ac3638eb4
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 6325a76..135ad30 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -560,16 +560,25 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( sal_Bool bUpdate ) const
         {
             const sal_Int32 nConstBufferSize = 32000;
             SvStream *pStream = new SvMemoryStream( 32000, 32000 );
-            sal_Int32 nRead=0;
-            uno::Sequence < sal_Int8 > aSequence ( nConstBufferSize );
-            do
+            try
+            {
+                sal_Int32 nRead=0;
+                uno::Sequence < sal_Int8 > aSequence ( nConstBufferSize );
+                do
+                {
+                    nRead = xStream->readBytes ( aSequence, nConstBufferSize );
+                    pStream->Write( aSequence.getConstArray(), nRead );
+                }
+                while ( nRead == nConstBufferSize );
+                pStream->Seek(0);
+                return pStream;
+            }
+            catch (const uno::Exception& ex)
             {
-                nRead = xStream->readBytes ( aSequence, nConstBufferSize );
-                pStream->Write( aSequence.getConstArray(), nRead );
+                SAL_WARN("svtools", "discarding broken embedded object preview: " << ex.Message);
+                delete pStream;
+                xStream.clear();
             }
-            while ( nRead == nConstBufferSize );
-            pStream->Seek(0);
-            return pStream;
         }
     }
 


More information about the Libreoffice-commits mailing list