diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-07-31 19:24:50 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-07-31 19:24:50 +0000 |
commit | ea8d38e77f143cbab19b7deca44043a3632f9ab6 (patch) | |
tree | e7d4bee5666465188a56529614b9cce432ed2e6e | |
parent | 4048e49956a2dfd49af3adf0f78881bf15f3550f (diff) | |
parent | 4d14303653247da3922242796ab6d63123fbd004 (diff) | |
download | core-ea8d38e77f143cbab19b7deca44043a3632f9ab6.tar.gz |
Merge "Fail explicitly on length overflow." into oc-dev
-rw-r--r-- | libutils/FileMap.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libutils/FileMap.cpp b/libutils/FileMap.cpp index 1afa1ecae..b9f411ef2 100644 --- a/libutils/FileMap.cpp +++ b/libutils/FileMap.cpp @@ -182,6 +182,10 @@ bool FileMap::create(const char* origFileName, int fd, off64_t offset, size_t le adjust = offset % mPageSize; adjOffset = offset - adjust; adjLength = length + adjust; + if (__builtin_add_overflow(length, adjust, &adjLength)) { + ALOGE("adjusted length overflow: length %zu adjust %d", length, adjust); + return false; + } flags = MAP_SHARED; prot = PROT_READ; |