Mpeg: Minor cleanup to header parsing.

Make sure we don't read garbage.
This commit is contained in:
Unknown W. Brackets 2016-06-05 16:19:51 -07:00
parent eb72a746b9
commit ff95fcd321

View file

@ -332,11 +332,11 @@ int MpegDemux::getNextAudioFrame(u8 **buf, int *headerCode1, int *headerCode2, s
bool MpegDemux::hasNextAudioFrame(int *gotsizeOut, int *frameSizeOut, int *headerCode1, int *headerCode2)
{
int gotsize = m_audioStream.get_front(m_audioFrame, 0x2000);
if (gotsize == 0 || !isHeader(m_audioFrame, 0))
if (gotsize < 4 || !isHeader(m_audioFrame, 0))
return false;
u8 code1 = m_audioFrame[2];
u8 code2 = m_audioFrame[3];
int frameSize = (((code1 & 0x03) << 8) | ((code2 & 0xFF) * 8)) + 0x10;
int frameSize = (((code1 & 0x03) << 8) | (code2 * 8)) + 0x10;
if (frameSize > gotsize)
return false;