diff options
| author | 2018-02-01 03:35:27 +0000 | |
|---|---|---|
| committer | 2018-02-01 03:35:27 +0000 | |
| commit | 5b46d98a7a8eb75da9c492f987c06a2648cb87b3 (patch) | |
| tree | 28154e206e483528c474269435b3bb1c62c79d18 | |
| parent | 842961310c22a5eb603549861652efc25a5757c7 (diff) | |
| parent | 1c4ccab92b268eaed8ed4d59bcf3302ad41a2a18 (diff) | |
Merge changes from topic "am-1ab9514f-fd12-4093-b1cb-a77e9f0419c9" into oc-dev am: 46fc48f57e am: b39e49d52c
am: 1c4ccab92b
Change-Id: I32ba85cdc40ea77772361ffb399085f7b8a67416
| -rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 7a0ef2b770ce..93a76adbef3f 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -812,7 +812,13 @@ const char* ResStringPool::string8At(size_t idx, size_t* outLen) const *outLen = encLen; 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); |