camera2/3: Add protection to callback processing call
Callback stream in callbackprocessor could be delleted while process or
discard callback are ongoing, which leads CpuConsumer related call crash.
Bug 9303911
Change-Id: Ib6137e512208e5603468eba166640729b744e8f9
diff --git a/services/camera/libcameraservice/camera2/CallbackProcessor.cpp b/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
index 5fa84e0..05c0abe 100644
--- a/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
+++ b/services/camera/libcameraservice/camera2/CallbackProcessor.cpp
@@ -182,6 +182,13 @@
}
do {
+ Mutex::Autolock l(mInputMutex);
+ if (mCallbackStreamId == NO_STREAM) {
+ ALOGV("%s: Camera %d:No stream is available"
+ , __FUNCTION__, mId);
+ break;
+ }
+
sp<Camera2Client> client = mClient.promote();
if (client == 0) {
res = discardNewCallback();