We could throw a StringAllocationFailed exception, and catch it near the bottom if the import process, and use that to indicate that the document is corrupt. <span></span><br><br>On Thursday, 3 January 2013, Lubos Lunak  wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thursday 03 of January 2013, Markus Mohrhard wrote:<br>
> Hey,<br>
><br>
> while going through the list of calc documents crashing during import<br>
> I came across gnome#627420-1.ods which creates an insanely large<br>
> OUStringBuffer that ultimately leads to a crash. Since I believe we<br>
> have quite a few places contain such problems. I wanted to ask if we<br>
> should not try to find a solution in the string classes instead of<br>
> having crashs with such documents from time to time.<br>
<br>
 The question is, what kind of solution do you expect? Presumably the crash<br>
was because the allocation failed and the assert was a no-op because of<br>
non-debug build, leading to NULL pointer dereference. So probably the only<br>
thing we can do is have the assert always active, changing the crash to a<br>
different kind of crash, but that seems to be about it.<br>
<br>
> The crash happens<br>
> in:<br>
><br>
> void SAL_CALL IMPL_RTL_STRINGNAME( new_WithLength )(<br>
> IMPL_RTL_STRINGDATA** ppThis, sal_Int32 nLen ) SAL_THROW_EXTERN_C()<br>
><br>
> with<br>
><br>
> *ppThis = IMPL_RTL_STRINGNAME( ImplAlloc )( nLen );<br>
>  OSL_ASSERT(*ppThis != NULL);<br>
> (*ppThis)->length   = 0;<br>
><br>
> in the assignment of length to zero.<br>
<br>
--<br>
 Lubos Lunak<br>
 <a href="javascript:;" onclick="_e(event, 'cvml', 'l.lunak@suse.cz')">l.lunak@suse.cz</a><br>
_______________________________________________<br>
LibreOffice mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'LibreOffice@lists.freedesktop.org')">LibreOffice@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/libreoffice" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libreoffice</a><br>
</blockquote>