mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-24 21:16:15 +01:00
gitypelib.c: on macOS, treat @-prefixed shlib paths as absolute
On macOS, @-prefixed shlib paths (@rpath, @executable_path, and @loader_path) need to be treated as absolute. Trying to combine them with a configured library path produces a mangled path that is unresolvable and may cause unintended side effects (such as loading the library from a fall-back location on macOS 12.0.1).
This commit is contained in:
parent
4027d2e12a
commit
c493763ff2
10
gitypelib.c
10
gitypelib.c
@ -2262,7 +2262,17 @@ load_one_shared_library (const char *shlib)
|
||||
GSList *p;
|
||||
GModule *m;
|
||||
|
||||
#ifdef __APPLE__
|
||||
/* On macOS, @-prefixed shlib paths (@rpath, @executable_path, @loader_path)
|
||||
need to be treated as absolute; trying to combine them with a
|
||||
configured library path produces a mangled path that is unresolvable
|
||||
and may cause unintended side effects (such as loading the library
|
||||
from a fall-back location on macOS 12.0.1).
|
||||
*/
|
||||
if (!g_path_is_absolute (shlib) && !g_str_has_prefix (shlib, "@"))
|
||||
#else
|
||||
if (!g_path_is_absolute (shlib))
|
||||
#endif
|
||||
{
|
||||
/* First try in configured library paths */
|
||||
for (p = library_paths; p; p = p->next)
|
||||
|
Loading…
Reference in New Issue
Block a user