mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-28 15:53:55 -04:00
dtoolutil: Fix UB when musl's dlinfo(RTLD_DI_LINKMAP) fails
This commit is contained in:
parent
adaf9ee4aa
commit
f21830d2a8
@ -610,16 +610,16 @@ read_args() {
|
||||
#else
|
||||
void *self = dlopen(NULL, RTLD_NOW | RTLD_NOLOAD);
|
||||
#endif
|
||||
dlinfo(self, RTLD_DI_LINKMAP, &map);
|
||||
|
||||
while (map != nullptr) {
|
||||
const char *tail = strrchr(map->l_name, '/');
|
||||
const char *head = strchr(map->l_name, '/');
|
||||
if (tail && head && (strcmp(tail, "/libp3dtool.so." PANDA_ABI_VERSION_STR) == 0
|
||||
|| strcmp(tail, "/libp3dtool.so") == 0)) {
|
||||
_dtool_name = head;
|
||||
if (dlinfo(self, RTLD_DI_LINKMAP, &map)) {
|
||||
while (map != nullptr) {
|
||||
const char *tail = strrchr(map->l_name, '/');
|
||||
const char *head = strchr(map->l_name, '/');
|
||||
if (tail && head && (strcmp(tail, "/libp3dtool.so." PANDA_ABI_VERSION_STR) == 0
|
||||
|| strcmp(tail, "/libp3dtool.so") == 0)) {
|
||||
_dtool_name = head;
|
||||
}
|
||||
map = map->l_next;
|
||||
}
|
||||
map = map->l_next;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user