diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2018-07-27 18:47:50 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-07-27 18:47:50 +0000 |
commit | f46469019c0fa1cee9e186004c3e325743d9ebec (patch) | |
tree | d638624afaff061ebb012e2c7706046a43e72a16 | |
parent | 490a126f946857e1ad9e4c281e5c115c13516d6c (diff) | |
parent | 93484b9b015d47c0f7e5f4449a214b2fed8bed4f (diff) | |
download | libhidl-pie-r2-s1-release.tar.gz |
Merge cherrypicks of [4647037, 4647038, 4647883, 4647039, 4647933, 4648530, 4648550, 4648551, 4648552, 4648553, 4646931, 4646932, 4646933, 4646934, 4648391, 4647976, 4647977, 4647978, 4647526, 4646972, 4646935, 4646936, 4646937, 4646938, 4646939, 4646940, 4646941, 4648392, 4647509, 4648630, 4648631, 4647934] into pi-release-2android-wear-9.0.0_r9android-wear-9.0.0_r8android-wear-9.0.0_r7android-wear-9.0.0_r6android-wear-9.0.0_r5android-wear-9.0.0_r4android-wear-9.0.0_r34android-wear-9.0.0_r33android-wear-9.0.0_r32android-wear-9.0.0_r31android-wear-9.0.0_r30android-wear-9.0.0_r3android-wear-9.0.0_r29android-wear-9.0.0_r28android-wear-9.0.0_r27android-wear-9.0.0_r26android-wear-9.0.0_r25android-wear-9.0.0_r24android-wear-9.0.0_r23android-wear-9.0.0_r22android-wear-9.0.0_r21android-wear-9.0.0_r20android-wear-9.0.0_r2android-wear-9.0.0_r19android-wear-9.0.0_r18android-wear-9.0.0_r17android-wear-9.0.0_r16android-wear-9.0.0_r15android-wear-9.0.0_r14android-wear-9.0.0_r13android-wear-9.0.0_r12android-wear-9.0.0_r11android-wear-9.0.0_r10android-wear-9.0.0_r1android-9.0.0_r8android-9.0.0_r7android-9.0.0_r6android-9.0.0_r18android-9.0.0_r10pie-release-2pie-r2-s2-releasepie-r2-s1-releasepie-r2-release
Change-Id: Ie8690bcc9e63cdb70ab81791244446a56ef46eb9
-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; } |