[automerger] Fix DynamicRefTable::load security bug am: 8cf0f988b0 am: d65dbf91ce am: aeb2fc64d9

Change-Id: I0556ef6fb1ceb02f4972c7434895cfeb5e13188d
This commit is contained in:
Android Build Merger (Role)
2018-06-06 17:12:18 +00:00

View File

@@ -6220,8 +6220,16 @@ status_t ResTable::parsePackage(const ResTable_package* const pkg,
}
} else if (ctype == RES_TABLE_LIBRARY_TYPE) {
if (group->dynamicRefTable.entries().size() == 0) {
status_t err = group->dynamicRefTable.load((const ResTable_lib_header*) chunk);
const ResTable_lib_header* lib = (const ResTable_lib_header*) chunk;
status_t err = validate_chunk(&lib->header, sizeof(*lib),
endPos, "ResTable_lib_header");
if (err != NO_ERROR) {
return (mError=err);
}
err = group->dynamicRefTable.load(lib);
if (err != NO_ERROR) {
return (mError=err);
}