Related fdo#58774 Alternative dialog Find & Replace for Writer

After having installed the extension from http://extensions.libreoffice.org/extension-center/alternative-dialog-find-replace-for-writer/releases/1.4
I had a crash, extract of bt:
5  0x00002aaad3ee13df in rtl::OUString::copy (this=0x7fffffff2510, beginIndex=147, count=-15) at /home/julien/compile-libreoffice/libreoffice/include/rtl/ustring.hxx:1481
6  0x00002aaad3edc10e in stringresource::StringResourcePersistenceImpl::implScanLocaleNames (this=0x8e2bba0, aContentSeq=uno::Sequence of length 24 = {...})
    at /home/julien/compile-libreoffice/libreoffice/scripting/source/stringresource/stringresource.cxx:1728

So add a quick check to be sure iDot > iSlash

Change-Id: I944a852d6cc9a35c451985ac96032f0d848136e8
This commit is contained in:
Julien Nabet
2014-06-21 22:33:17 +02:00
parent e4ca1f900a
commit d59da701c6

View File

@@ -1722,7 +1722,7 @@ void StringResourcePersistenceImpl::implScanLocaleNames( const Sequence< OUStrin
OUString aExtension;
sal_Int32 iDot = aCompleteName.lastIndexOf( '.' );
sal_Int32 iSlash = aCompleteName.lastIndexOf( '/' );
if( iDot != -1 )
if( iDot != -1 && iDot > iSlash)
{
sal_Int32 iCopyFrom = (iSlash != -1) ? iSlash + 1 : 0;
aPureName = aCompleteName.copy( iCopyFrom, iDot-iCopyFrom );