summaryrefslogtreecommitdiff
path: root/sdm/libs/hwc2/hwc_layers.cpp
diff options
context:
space:
mode:
authorVarun Arora <varuaror@codeaurora.org>2017-10-10 15:07:13 -0700
committerVarun Arora <varuaror@codeaurora.org>2017-10-10 15:07:13 -0700
commit2c23e58cd29cff24886737f07153e3b4ec659797 (patch)
tree5e271640b0f901da6b0e2ce3a7a30580dca98030 /sdm/libs/hwc2/hwc_layers.cpp
parent71f5daa4ea77f07ed7807b44f3a8a9a737d2edbe (diff)
downloaddisplay-2c23e58cd29cff24886737f07153e3b4ec659797.tar.gz
hwc2: Parameter validation and bounds checks
- Introduce use of GetDozeSupport Change-Id: Ic7edcd14b0c390fbd58f6be05b983a40b75c90eb CRs-Fixed: 2114346
Diffstat (limited to 'sdm/libs/hwc2/hwc_layers.cpp')
-rw-r--r--sdm/libs/hwc2/hwc_layers.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/sdm/libs/hwc2/hwc_layers.cpp b/sdm/libs/hwc2/hwc_layers.cpp
index fee67b44..13a67cf5 100644
--- a/sdm/libs/hwc2/hwc_layers.cpp
+++ b/sdm/libs/hwc2/hwc_layers.cpp
@@ -406,8 +406,13 @@ HWC2::Error HWCLayer::SetCursorPosition(int32_t x, int32_t y) {
}
HWC2::Error HWCLayer::SetLayerPlaneAlpha(float alpha) {
- // Conversion of float alpha in range 0.0 to 1.0 similar to the HWC Adapter
+ if (alpha < 0.0f || alpha > 1.0f) {
+ return HWC2::Error::BadParameter;
+ }
+
+ // Conversion of float alpha in range 0.0 to 1.0 similar to the HWC Adapter
uint8_t plane_alpha = static_cast<uint8_t>(std::round(255.0f * alpha));
+
if (layer_->plane_alpha != plane_alpha) {
geometry_changes_ |= kPlaneAlpha;
layer_->plane_alpha = plane_alpha;
@@ -457,8 +462,10 @@ HWC2::Error HWCLayer::SetLayerTransform(HWC2::Transform transform) {
layer_transform.flip_vertical = true;
break;
case HWC2::Transform::None:
- // do nothing
break;
+ default:
+ // bad transform
+ return HWC2::Error::BadParameter;
}
if (layer_transform_ != layer_transform) {