!22 fix: fix build_id_find_nhdr_callback build_id_note

Merge pull request !22 from AlgoIdeas/master
This commit is contained in:
openharmony_ci 2023-12-18 04:11:06 +00:00 committed by Gitee
commit 8eacc35ef4
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -91,12 +91,14 @@ build_id_find_nhdr_callback(struct dl_phdr_info *info, size_t size, void *data_)
size_t offset = sizeof(ElfW(Nhdr)) +
ALIGN_POT(note->nhdr.n_namesz, 4) +
ALIGN_POT(note->nhdr.n_descsz, 4);
note = (struct build_id_note *)((char *)note + offset);
// 05 00 00 00 04 00 00 00 4f 48 4f 53 00 01 00 00 00 00 00 00
if (note->nhdr.n_type == 0x534f484f && note > 20) {
if ((note->nhdr.n_type == 0x534f484f) && (len > 20)) {
// .note.ohos.ident is not a valid PT_NOTE section, use offset in section header later
offset = 20;
}
note = (struct build_id_note *)((char *)note + offset);
len -= offset;
}
}