summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNolan Scobie <nscobie@google.com>2022-11-18 12:10:42 -0500
committerNolan Scobie <nscobie@google.com>2022-11-18 12:58:27 -0500
commitd2e4264d5c455d8d3336458a53322c002e8cd8d9 (patch)
tree93cdc04609e1e263140833f314932c4b8fd32357
parenta5c551af4a9c377a1d34cd362b6d86ce5f1ff1e1 (diff)
downloadnative-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.cpp6
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();
}