Camera: Ensure correct error message for disconnected devices
After a device has been disconnected, should return consistent errors
to the caller if they invoke further device methods.
For API1, that's INVALID_OPERATION, and for API2, that's
ERROR_DISCONNECTED.
Change-Id: I0f3d889906a9818c0e03852702b146fd33c9e42a
Fixes: 27591189
diff --git a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
index 51c8148..b6c9900 100644
--- a/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
+++ b/services/camera/libcameraservice/api2/CameraDeviceClient.cpp
@@ -1050,6 +1050,10 @@
}
binder::Status CameraDeviceClient::checkPidStatus(const char* checkLocation) {
+ if (mDisconnected) {
+ return STATUS_ERROR(CameraService::ERROR_DISCONNECTED,
+ "The camera device has been disconnected");
+ }
status_t res = checkPid(checkLocation);
return (res == OK) ? binder::Status::ok() :
STATUS_ERROR(CameraService::ERROR_PERMISSION_DENIED,