diff options
author | Chia-I Wu <olv@google.com> | 2017-05-15 10:32:27 -0700 |
---|---|---|
committer | JP Sugarbroad <jpsugar@google.com> | 2017-05-19 00:25:08 -0700 |
commit | 7be50f64edb3e6e5ed296d84583b7db42fb39bdf (patch) | |
tree | be4dc7fdac50053705b723fc1d6fe8a62dffbe94 | |
parent | 277b287eaf758404810595552e37e57723d8bab8 (diff) | |
download | native-7be50f64edb3e6e5ed296d84583b7db42fb39bdf.tar.gz |
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.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/gui/IGraphicBufferProducer.cpp b/libs/gui/IGraphicBufferProducer.cpp index f4ba3bf15f..1a08130c44 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> @@ -203,8 +204,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; } |