OSDN Git Service

libsurfaceflinger: fix screenshot permission check
authorChia-I Wu <olv@google.com>
Mon, 7 Aug 2017 22:27:49 +0000 (15:27 -0700)
committerChia-I Wu <olv@google.com>
Mon, 7 Aug 2017 22:33:55 +0000 (15:33 -0700)
Fix the logic for layers we check isSecure or isVisible for.  It was
regressed by my previous change to support
WINDOW_TYPE_DONT_SCREENSHOT.

Bug: 63311708
Bug: 62656774
Test: CTS
Change-Id: I7768cb590014cc610ec564847958bbd98742c277

services/surfaceflinger/SurfaceFlinger.cpp

index 0f6c581..a57e8cf 100644 (file)
@@ -4392,7 +4392,7 @@ status_t SurfaceFlinger::captureScreenImplLocked(const sp<const DisplayDevice>&
     bool secureLayerIsVisible = false;
     for (const auto& layer : mDrawingState.layersSortedByZ) {
         const Layer::State& state(layer->getDrawingState());
-        if (layer->belongsToDisplay(hw->getLayerStack(), false) ||
+        if (!layer->belongsToDisplay(hw->getLayerStack(), false) ||
                 (state.z < minLayerZ || state.z > maxLayerZ)) {
             continue;
         }