diff --git a/src/common/zipstrm.cpp b/src/common/zipstrm.cpp index 3aec0dd195..063c1edf4c 100644 --- a/src/common/zipstrm.cpp +++ b/src/common/zipstrm.cpp @@ -1719,8 +1719,11 @@ bool wxZipInputStream::LoadEndRecord() ReadSignature() == magic) { m_signature = magic; m_position = endPos - recSize; - m_offsetAdjustment = m_position - endrec.GetOffset(); - return true; + if ( endrec.GetOffset() >= 0 && endrec.GetOffset() < m_position ) + { + m_offsetAdjustment = m_position - endrec.GetOffset(); + return true; + } } wxLogError(_("can't find central directory in zip"));