diff options
author | Nolan Scobie <nscobie@google.com> | 2022-11-18 12:10:42 -0500 |
---|---|---|
committer | Nolan Scobie <nscobie@google.com> | 2022-11-18 12:58:27 -0500 |
commit | d2e4264d5c455d8d3336458a53322c002e8cd8d9 (patch) | |
tree | 93cdc04609e1e263140833f314932c4b8fd32357 | |
parent | a5c551af4a9c377a1d34cd362b6d86ce5f1ff1e1 (diff) | |
download | native-d2e4264d5c455d8d3336458a53322c002e8cd8d9.tar.gz |
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
Merged-In: I460539404be7a7ae434812aa1f583bba6247a812
-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 0e1acb4154..4486e33166 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -6681,8 +6681,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.result = NO_MEMORY; - captureListener->onScreenCaptureCompleted(captureResults); + if (captureListener) { + captureResults.result = NO_MEMORY; + captureListener->onScreenCaptureCompleted(captureResults); + } return ftl::yield<FenceResult>(base::unexpected(NO_ERROR)).share(); } |