summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tatenda Chipeperekwa <tatendac@codeaurora.org> 2014-10-29 16:47:19 -0700
committer Dan Stoza <stoza@google.com> 2015-06-11 12:28:41 -0700
commit40da48bfdf5d2d199aac55891d2f37822cdbee88 (patch)
tree4b25485717775b74f28e6ea75d73f5d4b1c33f9d
parentffe3e96afe99e94904ca0c8f458a3eb708d78066 (diff)
sf: Add a NULL check in getDisplayConfigs
Validate the display binder by adding a NULL check in getDisplayConfigs. This will prevent a false match if the caller queries the display configs for an inactive display (whose binder is NULL by default). Without this change we might end up attempting to index the display config array, which is unpopulated for inactive displays, and this will result in a crash. (See getDisplayInfo in SurfaceComposerClient.cpp for an example of this scenario) Change-Id: Ib32a7dc8378d3438df0dba1ecd608bbcfc837717
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 2e6d2b6cfb..067ac69aeb 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -546,7 +546,7 @@ bool SurfaceFlinger::authenticateSurfaceTexture(
status_t SurfaceFlinger::getDisplayConfigs(const sp<IBinder>& display,
Vector<DisplayInfo>* configs) {
- if (configs == NULL) {
+ if ((configs == NULL) || (display.get() == NULL)) {
return BAD_VALUE;
}