From 0450452e8c6ea48341d57d8bc51d56252e9806b8 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 19 Sep 2011 16:12:08 -0700 Subject: [PATCH] Make sure Region handles invalid rectangles the boolean operation code assumes rects are valid and could go into an infinite loop if not. make sure we abort before that happens. Bug: 5331198, 5334829 Change-Id: Iee4e3b838ecf504ef21f7447fd2e34a56e7dc3f8 --- libs/ui/Region.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp index a060a5f39..8dab291b3 100644 --- a/libs/ui/Region.cpp +++ b/libs/ui/Region.cpp @@ -479,6 +479,11 @@ void Region::boolean_operation(int op, Region& dst, const Region& lhs, const Rect& rhs, int dx, int dy) { + if (!rhs.isValid()) { + LOGE("Region::boolean_operation(op=%d) invalid Rect={%d,%d,%d,%d}", + op, rhs.left, rhs.top, rhs.right, rhs.bottom); + } + #if VALIDATE_WITH_CORECG || VALIDATE_REGIONS boolean_operation(op, dst, lhs, Region(rhs), dx, dy); #else