diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-07-26 16:51:58 +0100 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2012-07-27 11:23:27 +0200 |
commit | 44bc6b5cac723b52df40fbef026e99b7119d8a69 (patch) | |
tree | 4a267ca3c90df42c387d338f29367341ad5bb022 | |
parent | ef99e34b2ab0807417b7fad2c9016ede2d10aee5 (diff) |
discard broken embedded object previews
Change-Id: Idbce67d16ed3e72395e130b1c4aa1d6977acd74b
Signed-off-by: Petr Mladek <pmladek@suse.cz>
-rw-r--r-- | svtools/source/misc/embedhlp.cxx | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx index 6db4edc7a8b6..ca2ed9dba6e0 100644 --- a/svtools/source/misc/embedhlp.cxx +++ b/svtools/source/misc/embedhlp.cxx @@ -561,16 +561,24 @@ 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 ); + delete pStream; + xStream.clear(); } - while ( nRead == nConstBufferSize ); - pStream->Seek(0); - return pStream; } } |