diff options
| author | 2022-11-18 12:57:47 -0500 | |
|---|---|---|
| committer | 2022-11-18 12:57:47 -0500 | |
| commit | 1d2deb2b37fc14dadbb1b1ffea90633f06ababcf (patch) | |
| tree | 02b3ee586e8507c15f52349e1a19a1f3b8b56d01 /services/surfaceflinger/SurfaceFlinger.cpp | |
| parent | dc8220f2399c1dd54cd861cc7ebd148ba73cd034 (diff) | |
Add nullptr check for captureListener in captureScreenCommon
RegionSamplingThread::captureSample intentionally passes null, which is
already checked for below, but missing in this failure case of
`!renderArea`
Bug: 259021062
Test: presubmits (cost/benefit ratio of adding a new test for this seems
high, given current testing flows and simplicity of change)
Change-Id: I460539404be7a7ae434812aa1f583bba6247a812
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 992760fea5..581dd13761 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -6416,8 +6416,10 @@ ftl::SharedFuture<FenceResult> SurfaceFlinger::captureScreenCommon( std::unique_ptr<RenderArea> renderArea = renderAreaFuture.get(); if (!renderArea) { ALOGW("Skipping screen capture because of invalid render area."); - captureResults.fenceResult = base::unexpected(NO_MEMORY); - captureListener->onScreenCaptureCompleted(captureResults); + if (captureListener) { + captureResults.fenceResult = base::unexpected(NO_MEMORY); + captureListener->onScreenCaptureCompleted(captureResults); + } return ftl::yield<FenceResult>(base::unexpected(NO_ERROR)).share(); } |