summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Giro2015-08-18 08:44:54 -0500
committerJon Larimer2015-08-18 15:52:25 -0500
commit5b85b1d40d619c2064d321364f212ebfeb6ba185 (patch)
treed06789741c03944ee138c185a1f79fc79ad07c17 /libutils/String8.cpp
parent9bd7afc0a1de9589c13355178b6edc709bd0bddf (diff)
downloadplatform-system-core-5b85b1d40d619c2064d321364f212ebfeb6ba185.tar.gz
platform-system-core-5b85b1d40d619c2064d321364f212ebfeb6ba185.tar.xz
platform-system-core-5b85b1d40d619c2064d321364f212ebfeb6ba185.zip
libutils: fix overflow in String8::allocFromUTF8
Patch contributed in: https://code.google.com/p/android/issues/detail?id=182908 Bug: 23290056 (cherry picked from commit 4eeacbeec0ae66e9d9395abbf83666709f2e11e3) Change-Id: Ife1dc0791040150132bea6884f1e6c8d31972d1b (cherry picked from commit ebabef275283f771151ec93c17469374b789b2c8)
Diffstat (limited to 'libutils/String8.cpp')
-rw-r--r--libutils/String8.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/libutils/String8.cpp b/libutils/String8.cpp
index e852d77b7..e5a48e55a 100644
--- a/libutils/String8.cpp
+++ b/libutils/String8.cpp
@@ -78,6 +78,9 @@ void terminate_string8()
78static char* allocFromUTF8(const char* in, size_t len) 78static char* allocFromUTF8(const char* in, size_t len)
79{ 79{
80 if (len > 0) { 80 if (len > 0) {
81 if (len == SIZE_MAX) {
82 return NULL;
83 }
81 SharedBuffer* buf = SharedBuffer::alloc(len+1); 84 SharedBuffer* buf = SharedBuffer::alloc(len+1);
82 ALOG_ASSERT(buf, "Unable to allocate shared buffer"); 85 ALOG_ASSERT(buf, "Unable to allocate shared buffer");
83 if (buf) { 86 if (buf) {