From 62a8f67f33faf19d0ff815672dd19bb71dd0d650 Mon Sep 17 00:00:00 2001 From: Zhijun He Date: Wed, 5 Jun 2013 20:00:09 -0700 Subject: 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 --- services/camera/libcameraservice/camera2/CallbackProcessor.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'services') 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 @@ bool CallbackProcessor::threadLoop() { } do { + Mutex::Autolock l(mInputMutex); + if (mCallbackStreamId == NO_STREAM) { + ALOGV("%s: Camera %d:No stream is available" + , __FUNCTION__, mId); + break; + } + sp client = mClient.promote(); if (client == 0) { res = discardNewCallback(); -- cgit v1.1