summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger
diff options
context:
space:
mode:
authorTatenda Chipeperekwa <tatendac@codeaurora.org>2014-10-29 16:47:19 -0700
committerDan Stoza <stoza@google.com>2015-06-11 12:28:41 -0700
commit40da48bfdf5d2d199aac55891d2f37822cdbee88 (patch)
tree4b25485717775b74f28e6ea75d73f5d4b1c33f9d /services/surfaceflinger
parentffe3e96afe99e94904ca0c8f458a3eb708d78066 (diff)
downloadframeworks_native-40da48bfdf5d2d199aac55891d2f37822cdbee88.zip
frameworks_native-40da48bfdf5d2d199aac55891d2f37822cdbee88.tar.gz
frameworks_native-40da48bfdf5d2d199aac55891d2f37822cdbee88.tar.bz2
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
Diffstat (limited to 'services/surfaceflinger')
-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 2e6d2b6..067ac69 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;
}