SampleTable.cpp: Prevent corrupted stts block from causing excessive memory allocation.
Details: DataSource.h - Added function getVector() for reading from a data source into a Vector object, whose capacity grows only as much as needed (in case of EOS or reading error). SampleTable.h - Changed the type of mTimeToSample from uint32_t* to Vector<uint32_t>. SampleTable.cpp - In setTimeToSample, modified the code to use getVector() instead of readAt(). If the input source has a corrupt time-to-sample table size that is too big, EOS will be reached before the whole table is read, and the return value from getVector() will be false. - Also, tightened the bound for the provided time-to-sample table size to guarantee that the table does not take more than UINT_MAX32 bytes in memory. Bug: 28076789 Ticket: CYNGNOS-2707 Change-Id: Id207f369ab7b27787d83f5d8fc48dc53ed9fcdc9
Loading
Please register or sign in to comment