From: Fridrich S. <str...@us...> - 2008-08-13 07:44:24
|
Update of /cvsroot/libwpg/libwpg/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3015/src/lib Modified Files: Tag: STABLE-0-1-0 WPG1Parser.cpp WPG2Parser.cpp Log Message: some more sanity checks due to sum1's tearing-down work. Thanks, dudie Index: WPG2Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG2Parser.cpp,v retrieving revision 1.58.2.15 retrieving revision 1.58.2.16 diff -u -d -r1.58.2.15 -r1.58.2.16 --- WPG2Parser.cpp 24 Jul 2008 13:53:04 -0000 1.58.2.15 +++ WPG2Parser.cpp 13 Aug 2008 07:44:19 -0000 1.58.2.16 @@ -1461,7 +1461,7 @@ // plain data, uncompression if(compression_format==0) - for(unsigned ii=0; ii < tmpBufferSize && m_input->tell() <= m_recordEnd; ii++) + for(unsigned ii=0; ii < tmpBufferSize && !m_input->atEOS() && m_input->tell() <= m_recordEnd; ii++) buffer.push_back( readU8() ); // run-length encoding else if(compression_format==1) @@ -1869,7 +1869,7 @@ WPG_DEBUG_MSG(("Image Object Mime Type : %s\n", binaryData.mimeType.cstr())); - while (m_input->tell() <= m_recordEnd) + while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) binaryData.append((char)readU8()); WPG_DEBUG_MSG((" Image Object Size : %li\n", (unsigned long)binaryData.size())); Index: WPG1Parser.cpp =================================================================== RCS file: /cvsroot/libwpg/libwpg/src/lib/WPG1Parser.cpp,v retrieving revision 1.33.2.12 retrieving revision 1.33.2.13 diff -u -d -r1.33.2.12 -r1.33.2.13 --- WPG1Parser.cpp 24 Jul 2008 15:36:11 -0000 1.33.2.12 +++ WPG1Parser.cpp 13 Aug 2008 07:44:19 -0000 1.33.2.13 @@ -784,7 +784,7 @@ data.rect.y2 = (double)m_height/1200.0 - (double)y2/72.0; data.clear(); - while (m_input->tell() <= m_recordEnd) + while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); data.mimeType = "application/x-postscript"; if (data.size()) @@ -833,7 +833,7 @@ m_input->seek(48, WPX_SEEK_CUR); data.clear(); - while (m_input->tell() <= m_recordEnd) + while (!m_input->atEOS() && m_input->tell() <= m_recordEnd) data.append((char)readU8()); if (data.size()) m_painter->drawImageObject(data); |