Fix for a crash test?

Michael Stahl mstahl at redhat.com
Tue Feb 25 08:13:55 PST 2014


On 25/02/14 13:05, Miklos Vajna wrote:
> Hi Julien,
> 
> On Sat, Feb 22, 2014 at 07:05:39AM -0800, julien2412 <serval2412 at 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).

yes, what Miklos said...

apparently this was added in commit
1b0f7ee1e04d7b0fe81f7458ae2116615e0f6889 and there's another
questionable bit in there: when it finds some RES_CTL_* hint it does not
set "bCTL = true" but "bCJK = false", so bCTL is never true?

also i wonder if the HTML import code actually sets only one of the
western/cjk/ctl font height etc. attributes or all 3 at the same time...




More information about the LibreOffice mailing list