From 4888e2ff1fe2bfde301e50894c311d07431c4639 Mon Sep 17 00:00:00 2001 From: Xiang Li <xlxiangli@google.com> Date: Sat, 25 Jun 2022 22:22:21 -0700 Subject: [PATCH] Fix a bug with y4m frame header reading (trigger assert when reaching file end) --- source/Lib/Utilities/VideoIOYuv.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/Lib/Utilities/VideoIOYuv.cpp b/source/Lib/Utilities/VideoIOYuv.cpp index b5856e4bd9..0a6b5f7ed9 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); -- GitLab