From c90f4c7c5838e4dee2f550c4d581e7205e666faa Mon Sep 17 00:00:00 2001 From: Yuvraj Pasi Date: Tue, 15 Apr 2014 19:03:26 +0530 Subject: camera: check Intent entry count before reading it In case when find() returns empty entry, blindly reading the entry will cause segfault Change-Id: Ib5be7fd855c409ba3b45f0d43e15237367172817 --- services/camera/libcameraservice/api1/client2/Parameters.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/camera/libcameraservice/api1/client2/Parameters.cpp b/services/camera/libcameraservice/api1/client2/Parameters.cpp index 0cceb76..6c2872a 100644 --- a/services/camera/libcameraservice/api1/client2/Parameters.cpp +++ b/services/camera/libcameraservice/api1/client2/Parameters.cpp @@ -1750,6 +1750,9 @@ status_t Parameters::updateRequest(CameraMetadata *request) const { camera_metadata_entry_t intent = request->find(ANDROID_CONTROL_CAPTURE_INTENT); + + if (intent.count == 0) return BAD_VALUE; + if (intent.data.u8[0] == ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE) { res = request->update(ANDROID_CONTROL_AE_TARGET_FPS_RANGE, fastInfo.bestStillCaptureFpsRange, 2); -- cgit v1.1