diff options
Diffstat (limited to 'libnm-core/nm-json.c')
| -rw-r--r-- | libnm-core/nm-json.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libnm-core/nm-json.c b/libnm-core/nm-json.c index f9042b1f..aa181a4a 100644 --- a/libnm-core/nm-json.c +++ b/libnm-core/nm-json.c @@ -44,7 +44,6 @@ void *_nm_jansson_json_true; void *_nm_jansson_json_object_size; void *_nm_jansson_json_object_set_new; void *_nm_jansson_json_object_iter; -void *_nm_jansson_json_object_iter_at; void *_nm_jansson_json_integer_value; void *_nm_jansson_json_string_value; @@ -80,7 +79,6 @@ bind_symbols (void *handle) TRY_BIND_SYMBOL (json_object_size); TRY_BIND_SYMBOL (json_object_set_new); TRY_BIND_SYMBOL (json_object_iter); - TRY_BIND_SYMBOL (json_object_iter_at); TRY_BIND_SYMBOL (json_integer_value); TRY_BIND_SYMBOL (json_string_value); @@ -96,6 +94,7 @@ nm_jansson_load (void) MISSING, } state = UNKNOWN; void *handle; + int mode; if (G_LIKELY (state != UNKNOWN)) goto out; @@ -104,7 +103,13 @@ nm_jansson_load (void) if (!bind_symbols (RTLD_DEFAULT)) goto out; - handle = dlopen (JANSSON_SONAME, RTLD_LAZY | RTLD_LOCAL | RTLD_NODELETE | RTLD_DEEPBIND); + mode = RTLD_LAZY | RTLD_LOCAL | RTLD_NODELETE | RTLD_DEEPBIND; +#if defined (ASAN_BUILD) + /* Address sanitizer is incompatible with RTLD_DEEPBIND. */ + mode &= ~RTLD_DEEPBIND; +#endif + handle = dlopen (JANSSON_SONAME, mode); + if (!handle) goto out; |