diff --git a/source/Lib/Utilities/VideoIOYuv.cpp b/source/Lib/Utilities/VideoIOYuv.cpp index b5856e4bd9c577099489ff544ff2faed09d68cf7..0a6b5f7ed9811f979b95f7da74486a2be8386391 100644 --- a/source/Lib/Utilities/VideoIOYuv.cpp +++ b/source/Lib/Utilities/VideoIOYuv.cpp @@ -1064,9 +1064,13 @@ bool VideoIOYuv::read ( PelUnitBuf& pic, PelUnitBuf& picOrg, const InputColourSp if (m_inY4mFileHeaderLength) { - char y4mFrameHeader[Y4M_FRAME_HEADER_LENGTH]; - m_cHandle.read(y4mFrameHeader, Y4M_FRAME_HEADER_LENGTH); - CHECK(strncmp(y4mFrameHeader, "FRAME", Y4M_FRAME_HEADER_LENGTH - 1), "Wrong Y4M frame header!"); + char frameHeader[Y4M_FRAME_HEADER_LENGTH+1]; + m_cHandle.read(frameHeader, Y4M_FRAME_HEADER_LENGTH); + if (m_cHandle.eof() || m_cHandle.fail()) + { + return false; + } + CHECK(strncmp(frameHeader, y4mFrameHeader, Y4M_FRAME_HEADER_LENGTH), "Wrong Y4M frame header!"); } const PelBuf areaBufY = picOrg.get(COMPONENT_Y);