Merge changes from topic "presubmit-am-e0844d7b1c6e4448bb8524d03efb5eec" into sc-qpr1-dev
* changes:
[automerge] Add missing bounds checks 2p: 2ebfe99b3a
Add missing bounds checks
diff --git a/media/libstagefright/rtsp/AAVCAssembler.cpp b/media/libstagefright/rtsp/AAVCAssembler.cpp
index 30cdbc9..b18e8ca 100644
--- a/media/libstagefright/rtsp/AAVCAssembler.cpp
+++ b/media/libstagefright/rtsp/AAVCAssembler.cpp
@@ -618,13 +618,14 @@
int32_t AAVCAssembler::pickStartSeq(const Queue *queue,
uint32_t first, int64_t play, int64_t jit) {
+ CHECK(!queue->empty());
// pick the first sequence number has the start bit.
sp<ABuffer> buffer = *(queue->begin());
int32_t firstSeqNo = buffer->int32Data();
// This only works for FU-A type & non-start sequence
- unsigned nalType = buffer->data()[0] & 0x1f;
- if (nalType != 28 || buffer->data()[1] & 0x80) {
+ int32_t nalType = buffer->size() >= 1 ? buffer->data()[0] & 0x1f : -1;
+ if (nalType != 28 || (buffer->size() >= 2 && buffer->data()[1] & 0x80)) {
return firstSeqNo;
}
@@ -634,7 +635,7 @@
if (rtpTime + jit >= play) {
break;
}
- if ((data[1] & 0x80)) {
+ if (it->size() >= 2 && (data[1] & 0x80)) {
const int32_t seqNo = it->int32Data();
ALOGE("finding [HEAD] pkt. \t Seq# (%d ~ )[%d", firstSeqNo, seqNo);
firstSeqNo = seqNo;