diff --git a/pressure-vessel/wrap.c b/pressure-vessel/wrap.c index 87e0cd0d36996411607e42798b28bc210dfa7a9d..b4c70c10e3bdcd7a505e1db277940607be4b1de9 100644 --- a/pressure-vessel/wrap.c +++ b/pressure-vessel/wrap.c @@ -2096,9 +2096,15 @@ main (int argc, /* We special case libshared-library-guard because usually * its blockedlist file is located in `/app` and we need * to change that to the `/run/parent` counterpart */ - const gchar *blockedlist = "/app/etc/freedesktop-sdk.ld.so.blockedlist"; + const gchar *blockedlist = g_getenv ("SHARED_LIBRARY_GUARD_CONFIG"); - if (g_file_test (blockedlist, G_FILE_TEST_EXISTS)) + if (blockedlist == NULL) + blockedlist = "/app/etc/freedesktop-sdk.ld.so.blockedlist"; + + if (g_file_test (blockedlist, G_FILE_TEST_EXISTS) + && (g_str_has_prefix (blockedlist, "/app/") + || g_str_has_prefix (blockedlist, "/usr/") + || g_str_has_prefix (blockedlist, "/lib"))) { g_autofree gchar *adjusted_blockedlist = NULL; adjusted_blockedlist = g_build_filename ("/run/parent",