From aeaa24d4216076bf3efae08bf66de41ddccd6ca3 Mon Sep 17 00:00:00 2001 From: David Surovell Date: Fri, 30 Dec 2005 18:53:40 +0000 Subject: [PATCH] two more ReadGIF tweaks git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/gifdecod.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common/gifdecod.cpp b/src/common/gifdecod.cpp index 8213e583ef..68be026a7b 100644 --- a/src/common/gifdecod.cpp +++ b/src/common/gifdecod.cpp @@ -803,7 +803,7 @@ int wxGIFDecoder::ReadGIF() pimg->w = buf[4] + 256 * buf[5]; pimg->h = buf[6] + 256 * buf[7]; - if (pimg->w == 0 || pimg->h == 0) + if ((pimg->w <= 0) || (pimg->w > maxScreenSize) || (pimg->h <= 0) || (pimg->h > maxScreenSize)) { Destroy(); return wxGIF_INVFORMAT; @@ -835,8 +835,9 @@ int wxGIFDecoder::ReadGIF() { ncolors = 2 << (buf[8] & 0x07); size_t numBytes = 3 * ncolors; - m_f->Read(pimg->pal, numBytes); - if (m_f->LastRead() != numBytes) + if (numBytes > 0) + m_f->Read(pimg->pal, numBytes); + if ((numBytes <= 0) || (m_f->LastRead() != numBytes)) { Destroy(); return wxGIF_INVFORMAT; -- 2.47.2