Fix incorrect check of descsz value.

Bug: 25187394

(cherry picked from commit 1fa55234d6)

Change-Id: Idbc9071e8b2b25a062c4e94118808d6e19d443d9
This commit is contained in:
Christopher Ferris 2015-10-22 13:34:48 -07:00
parent 3f7a33a529
commit d917514bd6

View file

@ -63,10 +63,10 @@ static bool get_build_id(
if (nhdr.n_type == NT_GNU_BUILD_ID) {
// Skip the name (which is the owner and should be "GNU").
addr += NOTE_ALIGN(nhdr.n_namesz);
uint8_t build_id_data[128];
if (nhdr.n_namesz > sizeof(build_id_data)) {
ALOGE("Possible corrupted note, name size value is too large: %u",
nhdr.n_namesz);
uint8_t build_id_data[160];
if (nhdr.n_descsz > sizeof(build_id_data)) {
ALOGE("Possible corrupted note, desc size value is too large: %u",
nhdr.n_descsz);
return false;
}
if (backtrace->Read(addr, build_id_data, nhdr.n_descsz) != nhdr.n_descsz) {