diff options
author | 2011-09-19 16:12:08 -0700 | |
---|---|---|
committer | 2011-09-19 16:50:17 -0700 | |
commit | 8bba5efcee0a7668508acd008feb218d8468aeb3 (patch) | |
tree | 842e51a7492262382317719dfe0e25aaf27df537 | |
parent | 83b186a246e8ffd52b91a17c0019dd8c9c9d21b1 (diff) |
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
-rw-r--r-- | libs/ui/Region.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp index a060a5f39db5..8dab291b3c24 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 |