diff --git a/src/epsimage.cpp b/src/epsimage.cpp index dbb98b57..3f1d93bc 100644 --- a/src/epsimage.cpp +++ b/src/epsimage.cpp @@ -1068,14 +1068,14 @@ namespace Exiv2 bool isEpsType(BasicIo& iIo, bool advance) { // read as many bytes as needed for the longest (DOS) EPS signature - size_t bufSize = dosEpsSignature.size(); + long bufSize = dosEpsSignature.size(); for (size_t i = 0; i < (sizeof epsFirstLine) / (sizeof *epsFirstLine); i++) { - if (bufSize < epsFirstLine[i].size()) { - bufSize = epsFirstLine[i].size(); + if (bufSize < static_cast(epsFirstLine[i].size())) { + bufSize = static_cast(epsFirstLine[i].size()); } } DataBuf buf = iIo.read(bufSize); - if (iIo.error() || iIo.eof()) { + if (iIo.error() || buf.size_ != bufSize) { return false; } // check for all possible (DOS) EPS signatures @@ -1085,7 +1085,7 @@ namespace Exiv2 } // seek back if possible and requested if (!advance || !matched) { - iIo.seek(-bufSize, BasicIo::cur); + iIo.seek(-buf.size_, BasicIo::cur); } return matched; }