diff --git a/camera/ndk/ndk_vendor/impl/ACameraDevice.cpp b/camera/ndk/ndk_vendor/impl/ACameraDevice.cpp index b86f854e04..26e6b3c50f 100644 --- a/camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +++ b/camera/ndk/ndk_vendor/impl/ACameraDevice.cpp @@ -754,8 +754,8 @@ CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outpu const camera_metadata_t *params_metadata = params.getAndLock(); utils::convertToHidl(params_metadata, &hidlParams); params.unlock(params_metadata); - remoteRet = mRemote->endConfigure(StreamConfigurationMode::NORMAL_MODE, hidlParams); } + remoteRet = mRemote->endConfigure(StreamConfigurationMode::NORMAL_MODE, hidlParams); if (!remoteRet.isOk()) { ALOGE("Transaction error: endConfigure failed %s", remoteRet.description().c_str()); } diff --git a/services/camera/libcameraservice/hidl/Convert.cpp b/services/camera/libcameraservice/hidl/Convert.cpp index 76ed6f6d2b..582ce347f9 100644 --- a/services/camera/libcameraservice/hidl/Convert.cpp +++ b/services/camera/libcameraservice/hidl/Convert.cpp @@ -101,12 +101,14 @@ hardware::camera2::params::OutputConfiguration convertFromHidl( bool convertFromHidl(const HCameraMetadata &src, CameraMetadata *dst) { const camera_metadata_t *buffer = reinterpret_cast(src.data()); size_t expectedSize = src.size(); - int res = validate_camera_metadata_structure(buffer, &expectedSize); - if (res == OK || res == CAMERA_METADATA_VALIDATION_SHIFTED) { - *dst = buffer; - } else { - ALOGE("%s: Malformed camera metadata received from HAL", __FUNCTION__); - return false; + if (buffer != nullptr) { + int res = validate_camera_metadata_structure(buffer, &expectedSize); + if (res == OK || res == CAMERA_METADATA_VALIDATION_SHIFTED) { + *dst = buffer; + } else { + ALOGE("%s: Malformed camera metadata received from HAL", __FUNCTION__); + return false; + } } return true; }