diff options
Diffstat (limited to 'libs/gui/Surface.cpp')
| -rw-r--r-- | libs/gui/Surface.cpp | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp index 4b76f9834c..22aa4ecc36 100644 --- a/libs/gui/Surface.cpp +++ b/libs/gui/Surface.cpp @@ -237,6 +237,12 @@ int Surface::dequeueBuffer(android_native_buffer_t** buffer, int* fenceFd) {          return result;      } +    if (buf < 0 || buf >= NUM_BUFFER_SLOTS) { +        ALOGE("dequeueBuffer: IGraphicBufferProducer returned invalid slot number %d", buf); +        android_errorWriteLog(0x534e4554, "36991414"); // SafetyNet logging +        return FAILED_TRANSACTION; +    } +      Mutex::Autolock lock(mMutex);      sp<GraphicBuffer>& gbuf(mSlots[buf].buffer); |