diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2018-09-13 21:19:42 +0000 |
---|---|---|
committer | android-build-prod (mdb) <android-build-team-robot@google.com> | 2018-09-13 21:19:42 +0000 |
commit | 3cea785529a8c532ab278e9391f56be8290d97c5 (patch) | |
tree | d638624afaff061ebb012e2c7706046a43e72a16 | |
parent | 490a126f946857e1ad9e4c281e5c115c13516d6c (diff) | |
parent | 5614e4be145f5fa7f5858d82440e02ed1905fb5d (diff) | |
download | libhidl-3cea785529a8c532ab278e9391f56be8290d97c5.tar.gz |
Snap for 5009372 from 5614e4be145f5fa7f5858d82440e02ed1905fb5d to pie-cts-releaseandroid-cts-9.0_r9android-cts-9.0_r8android-cts-9.0_r7android-cts-9.0_r6android-cts-9.0_r5android-cts-9.0_r4android-cts-9.0_r3android-cts-9.0_r20android-cts-9.0_r19android-cts-9.0_r18android-cts-9.0_r17android-cts-9.0_r16android-cts-9.0_r15android-cts-9.0_r14android-cts-9.0_r13android-cts-9.0_r12android-cts-9.0_r11android-cts-9.0_r10pie-cts-release
Change-Id: I42c0d7adb4ee7897431bca603984c51c5bd5df82
-rw-r--r-- | transport/HidlBinderSupport.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/transport/HidlBinderSupport.cpp b/transport/HidlBinderSupport.cpp index d14887f..4f8d7c5 100644 --- a/transport/HidlBinderSupport.cpp +++ b/transport/HidlBinderSupport.cpp @@ -19,6 +19,7 @@ #include <hidl/HidlBinderSupport.h> // C includes +#include <inttypes.h> #include <unistd.h> // C++ includes @@ -66,6 +67,15 @@ status_t readEmbeddedFromParcel(const hidl_memory& memory, parentOffset + hidl_memory::kOffsetOfName); } + // hidl_memory's size is stored in uint64_t, but mapMemory's mmap will map + // size in size_t. If size is over SIZE_MAX, mapMemory could succeed + // but the mapped memory's actual size will be smaller than the reported size. + if (memory.size() > SIZE_MAX) { + ALOGE("Cannot use memory with %" PRId64 " bytes because it is too large.", memory.size()); + android_errorWriteLog(0x534e4554, "79376389"); + return BAD_VALUE; + } + return _hidl_err; } |