3.6.0 regression: non-deterministic filter selection ...

Kohei Yoshida kohei.yoshida at gmail.com
Wed Aug 15 09:12:09 PDT 2012


On 08/15/2012 12:05 PM, Kohei Yoshida wrote:
> On 08/15/2012 12:02 PM, Kohei Yoshida wrote:
>> On 08/15/2012 11:05 AM, Kohei Yoshida wrote:
>>> I'll go a little deeper in the type detection chain (I'm at
>>> SwIoSystem::IsFileFilter at the moment) to confirm this theory.
>>
>> I've now deduced it to aHdr.Load( *pStream ) (aHdr being StgHeader) in
>> Storage::IsStorageFile() failing with Large-Word.doc, whereas this
>> succeeds with normal .doc files.
>
> Here is a link to the method (for your convenience)
> http://opengrok.libreoffice.org/xref/core/sot/source/sdstor/stg.cxx#344
>
> The culprit is on line 352, where bRet = 0 though it should be bRet = 1.

Ah.  Now I know.  Ultimately the failure is due to StgHeader::Check() 
returning false on Large-Word.doc.

http://opengrok.libreoffice.org/xref/core/sot/source/sdstor/stgelem.cxx#186

Changing this method to always return true leads to Writer loading the 
file correctly.

Now, what would be the right fix for this?  I'm not sure....

Kohei

-- 
Kohei Yoshida, LibreOffice hacker, Calc


More information about the LibreOffice mailing list