diff --git a/libs/surfaceflinger/SurfaceFlinger.cpp b/libs/surfaceflinger/SurfaceFlinger.cpp index 5ac1cfd932c99..7a7574f577717 100644 --- a/libs/surfaceflinger/SurfaceFlinger.cpp +++ b/libs/surfaceflinger/SurfaceFlinger.cpp @@ -1212,6 +1212,13 @@ sp SurfaceFlinger::createSurface(ClientID clientId, int pid, { sp layer; sp surfaceHandle; + + if (int32_t(w|h) < 0) { + LOGE("createSurface() failed, w or h is negative (w=%d, h=%d)", + int(w), int(h)); + return surfaceHandle; + } + Mutex::Autolock _l(mStateLock); sp client = mClientsMap.valueFor(clientId); if (UNLIKELY(client == 0)) {