Clip to layer bounds when drawing blur regions

Otherwise blurs can "escape" layer bounds. This would make 1-2
pixel-large layers fill the entire screen if the blur region is
appropriately crafted, which is not great.

Bug: 455563813
Flag: EXEMPT CVE_FIX
Test: PoC app
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:123f8fec995a3103acbc3a1191b9cef71523e013
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:f3fecb02978030ae4066235cbe638250996b6a9a
Merged-In: If59833f2d5060f5f81395d602e2dcb369a10fdbb
Change-Id: If59833f2d5060f5f81395d602e2dcb369a10fdbb
diff --git a/libs/renderengine/skia/SkiaRenderEngine.cpp b/libs/renderengine/skia/SkiaRenderEngine.cpp
index 5b6edb4..46c58b0 100644
--- a/libs/renderengine/skia/SkiaRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaRenderEngine.cpp
@@ -907,6 +907,10 @@
             SkAutoCanvasRestore acr(canvas, true);
             if (!roundRectClip.isEmpty()) {
                 canvas->clipRRect(roundRectClip, true);
+            } else {
+                // We need to clip bounds here since otherwise a client sending a bigger blur region
+                // enables the blur to "escape" the layer bounds which is very bad for security
+                canvas->clipRRect(bounds, true);
             }
 
             // TODO(b/182216890): Filter out empty layers earlier