[automerger] Check for null-terminator in ResStringPool::string8At am: 5ec65ae909

Change-Id: I1ea52e1ccd7bf5467438e3dc2e670cf8f325c629
This commit is contained in:
Android Build Merger (Role)
2018-01-17 22:20:03 +00:00

View File

@@ -805,7 +805,13 @@ const char* ResStringPool::string8At(size_t idx, size_t* outLen) const
*outLen = decodeLength(&str);
size_t encLen = decodeLength(&str);
if ((uint32_t)(str+encLen-strings) < mStringPoolSize) {
return (const char*)str;
// Reject malformed (non null-terminated) strings
if (str[encLen] != 0x00) {
ALOGW("Bad string block: string #%d is not null-terminated",
(int)idx);
return NULL;
}
return (const char*)str;
} else {
ALOGW("Bad string block: string #%d extends to %d, past end at %d\n",
(int)idx, (int)(str+encLen-strings), (int)mStringPoolSize);