From 04ba6d0ebd6a750d2ab2794af5bc4a8406178f00 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: I8aa42b2e0b37238ec2434b794dd84c1a1b70f163 --- libs/ui/Region.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp index a060a5f39db5b..8dab291b3c24e 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