Merge "QCamera2: Avoid accessing invalid data during flush" into oc-dr1-dev am: 33cc55010d
Change-Id: Idb6a86867747c29cce37cf7c999b0537805a468a
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index d190eba..a9c822c 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -14547,7 +14547,8 @@
while (pendingRequest != mPendingRequestsList.end() ||
pendingBuffer != mPendingBuffersMap.mPendingBuffersInRequest.end()) {
if (pendingRequest == mPendingRequestsList.end() ||
- pendingBuffer->frame_number < pendingRequest->frame_number) {
+ ((pendingBuffer != mPendingBuffersMap.mPendingBuffersInRequest.end()) &&
+ (pendingBuffer->frame_number < pendingRequest->frame_number))) {
// If metadata for this frame was sent, notify about a buffer error and returns buffers
// with error.
for (auto &info : pendingBuffer->mPendingBufferList) {
@@ -14571,7 +14572,8 @@
pendingBuffer = mPendingBuffersMap.mPendingBuffersInRequest.erase(pendingBuffer);
} else if (pendingBuffer == mPendingBuffersMap.mPendingBuffersInRequest.end() ||
- pendingBuffer->frame_number > pendingRequest->frame_number) {
+ ((pendingRequest != mPendingRequestsList.end()) &&
+ (pendingBuffer->frame_number > pendingRequest->frame_number))) {
// If the buffers for this frame were sent already, notify about a result error.
camera3_notify_msg_t notify_msg;
memset(¬ify_msg, 0, sizeof(camera3_notify_msg_t));