fdo#79008 Crash: File getting crash while saving in LO

File is getting crashed while saving in LO, as it tries
to access the value of vector after erasing that value.
Code changed to access the vector value first and
then erase that value from vector.

Change-Id: I29369b7582fdbd7363d0e6fdae091a30c79a747d
Reviewed-on: https://gerrit.libreoffice.org/9433
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
This commit is contained in:
Dinesh Patil 2014-05-21 19:32:54 +05:30 committed by Michael Stahl
parent 73f65ac3ef
commit ed3fd76b65
3 changed files with 11 additions and 1 deletions

Binary file not shown.

View File

@ -3124,6 +3124,16 @@ DECLARE_OOXMLEXPORT_TEST(testfdo76589 , "fdo76589.docx")
assertXPath ( pXmlDoc, "/w:numbering/w:abstractNum[1]/w:lvl[1]/w:lvlText","val","%1" );
}
DECLARE_OOXMLEXPORT_TEST(testfdo79008, "fdo79008.docx")
{
/* File getting crash while saving in LO.
* Checking if document.xml file is getting created after fix
*/
xmlDocPtr pXmlDoc = parseExport("word/document.xml");
if (!pXmlDoc)
return;
}
DECLARE_OOXMLEXPORT_TEST(testAuthorPropertySdt, "author-property.docx")
{
xmlDocPtr pXmlDoc = parseExport("word/document.xml");

View File

@ -1134,8 +1134,8 @@ void MSWord_SdrAttrIter::SetCharSet(const EECharAttrib& rAttr, bool bStart)
std::find( aChrTxtAtrArr.begin(), aChrTxtAtrArr.end(), &rAttr );
if ( it != aChrTxtAtrArr.end() )
{
aChrTxtAtrArr.erase( it );
aChrSetArr.erase( aChrSetArr.begin() + (it - aChrTxtAtrArr.begin()) );
aChrTxtAtrArr.erase( it );
}
}
}