Hi Julien, On Sat, Feb 22, 2014 at 07:05:39AM -0800, julien2412 <serval2412@yahoo.fr> wrote:
On pc Debian x86-64 with master sources updated yesterday, I reproduced the crash fdo51430-1.doc. The bt shows a failing assert because of the line 2423 of this block: 2415 else 2416 { 2417 //What I do here, is that I examine the attributes, and if 2418 //I find out, that it's CJK/CTL, then I set the paragraph space 2419 //to the value set in HTML_CJK_PARSPACE/HTML_CTL_PARSPACE. 2420 2421 sal_Bool bIsCJK = false; 2422 sal_Bool bIsCTL = false; 2423 SwpHints& rHints = pTxtNode->GetSwpHints(); //// HERE 2424 sal_uInt16 nWhich; 2425 SwTxtAttr *pHt; (see http://opengrok.libreoffice.org/xref/core/sw/source/filter/html/swhtml.cxx#2415) If I check pTxtNode->HasHints() on SwHTMLParser::AddParSpace in sw/source/filter/html/swhtml.cxx, no crash. But as often, I wonder if it's the good fix or if I just hide a bug
In general, GetSwpHints() should only be used after a HasHints() call. In an import filter, once again in general you are supposed to handle all kind of strange user input. Based on that, I would just add the HasHints() check there, unless you want to spend time on checking if the bugdoc crashed in older versions as well (and if it did not, why that didn't happen). Miklos
Attachment:
signature.asc
Description: Digital signature