summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olv@google.com>2017-05-15 10:32:27 -0700
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-08 18:24:08 +0000
commit2aa91b37c8f8691c6a77f87b0b2551d15dca2ad2 (patch)
tree82cb23d91d5d87e43adff5106953a13a2fd5d244
parenta6381e33b0c33b3342f743ba4e3e47cff10bba71 (diff)
downloadandroid-frameworks-native-2aa91b37c8f8691c6a77f87b0b2551d15dca2ad2.tar.gz
android-frameworks-native-2aa91b37c8f8691c6a77f87b0b2551d15dca2ad2.tar.xz
libgui: check for invalid slot in attachBuffer
Bug: 37478824 Test: manual Change-Id: I369337d53539bf7f7e3d925bccdae4045da1b404 (cherry picked from commit c79a29689c1046f1f0301c75df9b9a67cba8bf04)
-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 c3c6235..51eedab 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>
@@ -170,8 +171,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;
}