Camera: Avoid possible instability when adding new devices
In cases where camera provider is having issues
"initializeDeviceInfo" may fail to return valid device
information.
Try to avoid possible instabilities and check the return
parameter before trying to access it.
Bug: 204111448
Test: Camera CTS
Change-Id: I3561f38cb7e5aacd9f5f62bda77caddb648a2578
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index b10a4c4..2f74df9 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -1631,7 +1631,6 @@
case 3:
deviceInfo = initializeDeviceInfo<DeviceInfo3>(name, mProviderTagid,
id, minor);
- deviceInfo->notifyDeviceStateChange(mDeviceState);
break;
default:
ALOGE("%s: Device %s: Unknown HIDL device HAL major version %d:", __FUNCTION__,
@@ -1639,6 +1638,7 @@
return BAD_VALUE;
}
if (deviceInfo == nullptr) return BAD_VALUE;
+ deviceInfo->notifyDeviceStateChange(mDeviceState);
deviceInfo->mStatus = initialStatus;
bool isAPI1Compatible = deviceInfo->isAPI1Compatible();