7abd6f0
From 0da2906aa147050c3e99846d5908a60b99df69ba Mon Sep 17 00:00:00 2001
7abd6f0
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
7abd6f0
Date: Tue, 2 Aug 2011 16:56:30 +0100
7abd6f0
Subject: [PATCH] Resolves: rhbz#693265 fix crash from unhandled exception
7abd6f0
7abd6f0
---
7abd6f0
 vcl/source/gdi/impgraph.cxx |   28 ++++++++++++++++++++++++----
7abd6f0
 1 files changed, 24 insertions(+), 4 deletions(-)
7abd6f0
7abd6f0
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
7abd6f0
index 3b6d9a4..6fdb163 100644
7abd6f0
--- a/vcl/source/gdi/impgraph.cxx
7abd6f0
+++ b/vcl/source/gdi/impgraph.cxx
7abd6f0
@@ -1077,7 +1077,14 @@ sal_Bool ImpGraphic::ImplReadEmbedded( SvStream& rIStm, sal_Bool bSwap )
7abd6f0
 
7abd6f0
                 if( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ).getLength() )
7abd6f0
                 {
7abd6f0
-                    SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
+                    SvStream* pOStm = NULL;
7abd6f0
+                    try
7abd6f0
+                    {
7abd6f0
+                        pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
+                    }
7abd6f0
+                    catch( const ::com::sun::star::uno::Exception& )
7abd6f0
+                    {
7abd6f0
+                    }
7abd6f0
 
7abd6f0
                     if( pOStm )
7abd6f0
                     {
7abd6f0
@@ -1282,8 +1289,14 @@ sal_Bool ImpGraphic::ImplSwapOut()
7abd6f0
 
7abd6f0
             if( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ).getLength() )
7abd6f0
             {
7abd6f0
-                SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
-
7abd6f0
+                SvStream* pOStm = NULL;
7abd6f0
+                try
7abd6f0
+                {
7abd6f0
+                    pOStm = ::utl::UcbStreamHelper::CreateStream( aTmpURL.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
+                }
7abd6f0
+                catch( const ::com::sun::star::uno::Exception& )
7abd6f0
+                {
7abd6f0
+                }
7abd6f0
                 if( pOStm )
7abd6f0
                 {
7abd6f0
                     pOStm->SetVersion( SOFFICE_FILEFORMAT_50 );
7abd6f0
@@ -1382,7 +1395,14 @@ sal_Bool ImpGraphic::ImplSwapIn()
7abd6f0
 
7abd6f0
         if( aSwapURL.Len() )
7abd6f0
         {
7abd6f0
-            SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
+            SvStream* pIStm = NULL;
7abd6f0
+            try
7abd6f0
+            {
7abd6f0
+                pIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, STREAM_READWRITE | STREAM_SHARE_DENYWRITE );
7abd6f0
+            }
7abd6f0
+            catch( const ::com::sun::star::uno::Exception& )
7abd6f0
+            {
7abd6f0
+            }
7abd6f0
 
7abd6f0
             if( pIStm )
7abd6f0
             {
7abd6f0
-- 
7abd6f0
1.7.6
7abd6f0