Camera: Fix race condition between initialize and statusCallback

Camera status callback may be triggered during
ProviderInfo::initialize(). Acquire mLock for the duration of
initialize() to avoid the race.

Bug: 159201665
Test: vendor testing, Camera CTS
Change-Id: I0be55c6b72b63e86ce100dd8d46947d86c8c6c34
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 32d118d..c391002 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -1312,6 +1312,7 @@
 status_t CameraProviderManager::ProviderInfo::initialize(
         sp<provider::V2_4::ICameraProvider>& interface,
         hardware::hidl_bitfield<provider::V2_5::DeviceState> currentDeviceState) {
+    std::lock_guard<std::mutex> lock(mLock);
     status_t res = parseProviderName(mProviderName, &mType, &mId);
     if (res != OK) {
         ALOGE("%s: Invalid provider name, ignoring", __FUNCTION__);