From 9951de4a10386a85dc1bfa465304cd0005414b8e Mon Sep 17 00:00:00 2001 From: Jan Holesovsky Date: Fri, 10 Feb 2012 17:54:03 +0100 Subject: fdo#42771: Fix crash when loading an invalid .fodt. createTextCursorByRange() likes to throw runtime exception, even though it just means 'we were unable to create the cursor'. --- xmloff/source/text/txtparai.cxx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'xmloff') diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx index 721e03b14ebb..70848c42124e 100644 --- a/xmloff/source/text/txtparai.cxx +++ b/xmloff/source/text/txtparai.cxx @@ -2031,10 +2031,16 @@ XMLParaContext::~XMLParaContext() xTxtImport->InsertControlCharacter( ControlCharacter::APPEND_PARAGRAPH ); // create a cursor that select the whole last paragraph - Reference < XTextCursor > xAttrCursor( - xTxtImport->GetText()->createTextCursorByRange( xStart )); - if( !xAttrCursor.is() ) - return; // Robust (defect file) + Reference < XTextCursor > xAttrCursor; + try { + xAttrCursor = xTxtImport->GetText()->createTextCursorByRange( xStart ); + if( !xAttrCursor.is() ) + return; // Robust (defect file) + } catch (uno::Exception &) { + // createTextCursorByRange() likes to throw runtime exception, even + // though it just means 'we were unable to create the cursor' + return; + } xAttrCursor->gotoRange( xEnd, sal_True ); // xml:id for RDF metadata -- cgit