SurfaceFlinger: Fix rect out-of-bounds checks
Rects' right and bottom edges are treated as exclusive, so when
checking against maximum width and height, we should use > instead
of >=.
Change-Id: Ifcdf6813c13fcab1a55f16c21064e765e93d49f0
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 7152f93..cd5fe6b 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2901,14 +2901,14 @@
if (sourceCrop.left < 0) {
ALOGE("Invalid crop rect: l = %d (< 0)", sourceCrop.left);
}
- if (sourceCrop.right >= hw_w) {
- ALOGE("Invalid crop rect: r = %d (>= %d)", sourceCrop.right, hw_w);
+ if (sourceCrop.right > hw_w) {
+ ALOGE("Invalid crop rect: r = %d (> %d)", sourceCrop.right, hw_w);
}
if (sourceCrop.top < 0) {
ALOGE("Invalid crop rect: t = %d (< 0)", sourceCrop.top);
}
- if (sourceCrop.bottom >= hw_h) {
- ALOGE("Invalid crop rect: b = %d (>= %d)", sourceCrop.bottom, hw_h);
+ if (sourceCrop.bottom > hw_h) {
+ ALOGE("Invalid crop rect: b = %d (> %d)", sourceCrop.bottom, hw_h);
}
// make sure to clear all GL error flags