-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, one of the best QA guys in the known universe, Sum1 of AbiWord fame, run a lot of WP documents through the wpd2raw 0.8.5 and discovered a crash in a very rare situation in WP5 parser (if the font descriptor packet is there, but not the font list packet). Although it is really rare case, the problem exists and the attached patch is solving the problem. I would kindly ask the libwpd packagers to reissue for their distribution a new package containing this patch.
This means that I will try to push the 0.8.6 sometimes in July just after I stuff a little bit the WP42 parser. My apology for this regression. Cheers Fridrich P.S. Naturally, the document at stake will be included in our regression suite so that it does not come to bite us anymore. P'.S'. We really need a dedicated QA person for WP5 parser :-( - -- Please avoid sending me Word, Excel or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEi+fGu9a1imXPdA8RAg8cAJ9fDjt69ClTb5tzIWOmraUsbhuVUQCdFIVc cq8OKHDvgQDW4BQNDgRSJls= =F5Tg -----END PGP SIGNATURE-----
--- src/lib/WP5Parser.cpp 27 May 2006 14:09:33 -0000 1.29 +++ src/lib/WP5Parser.cpp 10 Jun 2006 20:37:45 -0000 1.30 @@ -180,7 +180,6 @@ { tmpFontSize = static_cast<const WP5ListFontsUsedPacket*>(listener.getGeneralPacketData(2))->getFontSize(0); tmpFontNameOffset = static_cast<const WP5ListFontsUsedPacket*>(listener.getGeneralPacketData(2))->getFontNameOffset(0); - tmpFontName = static_cast<const WP5FontNameStringPoolPacket*>(listener.getGeneralPacketData(7))->getFontName(tmpFontNameOffset); } else tmpHasFontsUsedPacket = false; --- src/lib/WP5FontGroup.cpp 15 May 2006 12:39:49 -0000 1.2 +++ src/lib/WP5FontGroup.cpp 10 Jun 2006 20:37:45 -0000 1.3 @@ -97,7 +97,8 @@ return; } - tmpFontName = static_cast<const WP5FontNameStringPoolPacket*>(listener->getGeneralPacketData(7))->getFontName(tmpFontNameOffset); + if (listener->getGeneralPacketData(7)) + tmpFontName = static_cast<const WP5FontNameStringPoolPacket*>(listener->getGeneralPacketData(7))->getFontName(tmpFontNameOffset); if (m_fontSize >= 0) tmpFontSize = m_fontSize;
_______________________________________________ Libwpd-devel mailing list Libwpd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libwpd-devel