diff options
author | Yuvraj Pasi <ypasi@nvidia.com> | 2014-04-15 19:03:26 +0530 |
---|---|---|
committer | Yuvraj Pasi <ypasi@nvidia.com> | 2014-05-12 12:15:42 +0530 |
commit | c90f4c7c5838e4dee2f550c4d581e7205e666faa (patch) | |
tree | dcba88eb3d13d02b3eab49d000f35a6dbed30e1c /services | |
parent | 4f53fe74051026e6635ba5bdbed4f1898cb66028 (diff) | |
download | frameworks_av-c90f4c7c5838e4dee2f550c4d581e7205e666faa.zip frameworks_av-c90f4c7c5838e4dee2f550c4d581e7205e666faa.tar.gz frameworks_av-c90f4c7c5838e4dee2f550c4d581e7205e666faa.tar.bz2 |
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
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/api1/client2/Parameters.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
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); |