summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chia-I Wu <olv@google.com> 2017-05-16 20:41:35 +0000
committer android-build-merger <android-build-merger@google.com> 2017-05-16 20:41:35 +0000
commit396cc342a7561eb84e50a365dbb20c31390c75ab (patch)
tree880491490cf530b1ea4b7938e9ec8ee4c6db3694
parent970bb515801cb8f8138eb2d3be53ae5dbba27672 (diff)
parentaf33c978c82088375bfca5adb5cfa508f93843d7 (diff)
Merge "libgui: check for invalid slot in attachBuffer" into lmp-dev
am: af33c978c8 Change-Id: I97f957bc5375d11cd034d4b06baa8636e7999f8c
-rw-r--r--libs/gui/IGraphicBufferProducer.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/gui/IGraphicBufferProducer.cpp b/libs/gui/IGraphicBufferProducer.cpp
index b5ec604a96..b12d6ca3e0 100644
--- a/libs/gui/IGraphicBufferProducer.cpp
+++ b/libs/gui/IGraphicBufferProducer.cpp
@@ -26,6 +26,7 @@
#include <binder/Parcel.h>
#include <binder/IInterface.h>
+#include <gui/BufferQueueDefs.h>
#include <gui/IGraphicBufferProducer.h>
#include <gui/IProducerListener.h>
@@ -164,8 +165,16 @@ public:
if (result != NO_ERROR) {
return result;
}
+
*slot = reply.readInt32();
result = reply.readInt32();
+ if (result == NO_ERROR &&
+ (*slot < 0 || *slot >= BufferQueueDefs::NUM_BUFFER_SLOTS)) {
+ ALOGE("attachBuffer returned invalid slot %d", *slot);
+ android_errorWriteLog(0x534e4554, "37478824");
+ return UNKNOWN_ERROR;
+ }
+
return result;
}