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
