summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/SurfaceFlinger.cpp
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 10:40:21 -0700
commit23e16bb5dae277cd20a739ca56553ae931c43ccf (patch)
treeb3295b77de9f312fcbc29a1745834300f96285b9 /services/surfaceflinger/SurfaceFlinger.cpp
parent6cd8771c9cb9512e094bc2944bb7dd38665c1838 (diff)
downloadframeworks_native-23e16bb5dae277cd20a739ca56553ae931c43ccf.zip
frameworks_native-23e16bb5dae277cd20a739ca56553ae931c43ccf.tar.gz
frameworks_native-23e16bb5dae277cd20a739ca56553ae931c43ccf.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: I1a12f43b7c375b9c01998dadd5b658275c733fb2 (cherry picked from commit ac71c26e9180d9d181be5ec9e45da72d39144a8b)
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-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 a426ad6..a332cda 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -550,7 +550,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;
}