Skip to content

Commit c714ba4

Browse files
marconeandi34
authored andcommitted
Check NAL size before use
Bug: 24441553 Bug: 24445122 Change-Id: Ib7f025769adbafd5a2cb64fae5562a0a565945c2 (cherry picked from commit 5d10129)
1 parent 673fa58 commit c714ba4

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

media/libstagefright/MPEG4Extractor.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3307,7 +3307,10 @@ status_t MPEG4Source::read(
33073307
(const uint8_t *)mBuffer->data() + mBuffer->range_offset();
33083308

33093309
size_t nal_size = parseNALSize(src);
3310-
if (mBuffer->range_length() < mNALLengthSize + nal_size) {
3310+
if (mNALLengthSize > SIZE_MAX - nal_size) {
3311+
ALOGE("b/24441553, b/24445122");
3312+
}
3313+
if (mBuffer->range_length() - mNALLengthSize < nal_size) {
33113314
ALOGE("incomplete NAL unit.");
33123315

33133316
mBuffer->release();
@@ -3572,7 +3575,11 @@ status_t MPEG4Source::fragmentedRead(
35723575
(const uint8_t *)mBuffer->data() + mBuffer->range_offset();
35733576

35743577
size_t nal_size = parseNALSize(src);
3575-
if (mBuffer->range_length() < mNALLengthSize + nal_size) {
3578+
if (mNALLengthSize > SIZE_MAX - nal_size) {
3579+
ALOGE("b/24441553, b/24445122");
3580+
}
3581+
3582+
if (mBuffer->range_length() - mNALLengthSize < nal_size) {
35763583
ALOGE("incomplete NAL unit.");
35773584

35783585
mBuffer->release();

0 commit comments

Comments
 (0)