From 9b85a194e4118819b2bd9ab0bfb489f78ae1b529 Mon Sep 17 00:00:00 2001 From: Brian Lindahl Date: Mon, 10 May 2021 09:56:33 +0000 Subject: Add robustness for permissions errors to Surface APIs. Test: Tested ag/14424498 via testHevcTranscodingWithFileDescriptor on Test: flame - ab/builds/forrest/run/L38000000884507245 Bug: 184903653 Bug: 184112407 Change-Id: I94dcaa31edcf0f810c6cf69ca6e73277470fa51f --- libs/gui/Surface.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libs/gui/Surface.cpp') diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp index 2fc9d47b89..f4aa7b3d8b 100644 --- a/libs/gui/Surface.cpp +++ b/libs/gui/Surface.cpp @@ -1268,8 +1268,11 @@ int Surface::query(int what, int* value) const { if (err == NO_ERROR) { return NO_ERROR; } - if (composerService()->authenticateSurfaceTexture( - mGraphicBufferProducer)) { + sp surfaceComposer = composerService(); + if (surfaceComposer == nullptr) { + return -EPERM; // likely permissions error + } + if (surfaceComposer->authenticateSurfaceTexture(mGraphicBufferProducer)) { *value = 1; } else { *value = 0; -- cgit v1.2.3-59-g8ed1b