mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 00:06:44 -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
|
#else
|
||||||
void *self = dlopen(NULL, RTLD_NOW | RTLD_NOLOAD);
|
void *self = dlopen(NULL, RTLD_NOW | RTLD_NOLOAD);
|
||||||
#endif
|
#endif
|
||||||
dlinfo(self, RTLD_DI_LINKMAP, &map);
|
if (dlinfo(self, RTLD_DI_LINKMAP, &map)) {
|
||||||
|
while (map != nullptr) {
|
||||||
while (map != nullptr) {
|
const char *tail = strrchr(map->l_name, '/');
|
||||||
const char *tail = strrchr(map->l_name, '/');
|
const char *head = strchr(map->l_name, '/');
|
||||||
const char *head = strchr(map->l_name, '/');
|
if (tail && head && (strcmp(tail, "/libp3dtool.so." PANDA_ABI_VERSION_STR) == 0
|
||||||
if (tail && head && (strcmp(tail, "/libp3dtool.so." PANDA_ABI_VERSION_STR) == 0
|
|| strcmp(tail, "/libp3dtool.so") == 0)) {
|
||||||
|| strcmp(tail, "/libp3dtool.so") == 0)) {
|
_dtool_name = head;
|
||||||
_dtool_name = head;
|
}
|
||||||
|
map = map->l_next;
|
||||||
}
|
}
|
||||||
map = map->l_next;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user