Skip to content

Commit

Permalink
Merge pull request #1174 from no92/_dl_find_object-bounds
Browse files Browse the repository at this point in the history
  • Loading branch information
no92 authored Oct 24, 2024
2 parents 1eef3c6 + 0039575 commit 0f7479f
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions options/rtld/generic/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -880,9 +880,8 @@ void __dlapi_enter(uintptr_t *entry_stack) {

extern "C" [[gnu::visibility("default")]] int _dl_find_object(void *address, dl_find_object *result) {
for(const SharedObject *object : initialRepository->loadedObjects) {
if(object->baseAddress > (uintptr_t)address) {
if(object->baseAddress > reinterpret_cast<uintptr_t>(address))
continue;
}

if(object->inLinkMap)
result->dlfo_link_map = (link_map *)&object->linkMap;
Expand All @@ -902,6 +901,9 @@ extern "C" [[gnu::visibility("default")]] int _dl_find_object(void *address, dl_
end_addr = frg::max(end_addr, phdr->p_vaddr + phdr->p_memsz);
}

if(reinterpret_cast<uintptr_t>(address) > object->baseAddress + end_addr)
continue;

result->dlfo_flags = 0;
result->dlfo_map_start = (void *)object->baseAddress;
result->dlfo_map_end = (void *)(object->baseAddress + end_addr);
Expand Down

0 comments on commit 0f7479f

Please sign in to comment.