diff options
| -rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index e10db05e8557..38d2a588b594 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -4320,6 +4320,7 @@ ssize_t ResTable::getBagLocked(uint32_t resID, const bag_entry** outBag, if (curOff > (dtohl(entry.type->header.size)-sizeof(ResTable_map))) { ALOGW("ResTable_map at %d is beyond type chunk data %d", (int)curOff, dtohl(entry.type->header.size)); + free(set); return BAD_TYPE; } map = (const ResTable_map*)(((const uint8_t*)entry.type) + curOff); @@ -4332,6 +4333,7 @@ ssize_t ResTable::getBagLocked(uint32_t resID, const bag_entry** outBag, if (grp->dynamicRefTable.lookupResourceId(&newName) != NO_ERROR) { ALOGE("Failed resolving ResTable_map name at %d with ident 0x%08x", (int) curOff, (int) newName); + free(set); return UNKNOWN_ERROR; } } |