https://bugs.freedesktop.org/show_bug.cgi?id=41554

Julien Nabet <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected],
                   |                            |[email protected]
                   |                            |r, [email protected]

--- Comment #5 from Julien Nabet <[email protected]> ---
It seems that the problem could be located in
sw/source/filter/ww8/ww8toolbar.cxx:846 (function Tcg255::processSubStruct)

When the file is loaded, LO enters in this function first time with parameter
nId = 1, then goes to the switch:
    849          case 0x1:
    850          {
    851              pSubStruct = new PlfMcd( false ); // don't read the id
    852              break;
    853          }
Notice the comment 'don't read the id' whereas some lines after the switch, we
have:
    884     pSubStruct->ch = nId;
    885     if ( !pSubStruct->Read( rS ) )
    886         return false;

Since we don't return from this function like in "default" case, it fails at
pSubStruct->Read, see:
885        if ( !pSubStruct->Read( rS ) )
(gdb) s
PlfMcd::Read (this=0x5d3d870, rS=...) at
/home/julien/compile-libreoffice/libo/sw/source/filter/ww8/ww8toolbar.cxx:970
970        OSL_TRACE("PffMcd::Read() stream pos 0x%x", rS.Tell() );
(gdb) n
[Thread 0x7f995d8b2700 (LWP 23551) exited]
971        nOffSet = rS.Tell();
(gdb) n
972        Tcg255SubStruct::Read( rS );
(gdb) n
973        rS >> iMac;
(gdb) n
974        if ( iMac )
(gdb) p iMac
$30 = -430637046
(gdb) n
976            rgmcd = new MCD[ iMac ];
(gdb) p iMac
$31 = -430637046
(gdb) n

So I dynamically change nId value in order to go in "default" case and was able
to open the file.

So, perhaps an easy fix could be to add a "return false" in case 1 instead of
break. Of course it's only a guess instead of a real understanding :-( 

Stephan/Caolán/Cedric: would one of you have some time to take a look to this?

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to