From a21fae83b7054bf29a5524ffc84364f2f2f4e5b5 Mon Sep 17 00:00:00 2001 From: Aleksey Kliger Date: Mon, 27 Feb 2017 17:35:39 -0500 Subject: [PATCH] [runtime] Mark mono_assembly_open and mono_assembly_open_full external only Runtime should use mono_assembly_open_predicate --- mono/metadata/appdomain.c | 2 +- mono/metadata/assembly.h | 2 ++ mono/metadata/attach.c | 4 ++-- mono/metadata/coree.c | 6 +++--- mono/metadata/domain.c | 6 +++--- mono/metadata/mono-security.c | 4 ++-- mono/metadata/w32socket.c | 6 +++--- mono/mini/driver.c | 8 ++++---- mono/mini/interp/interp.c | 4 ++-- tools/pedump/pedump.c | 6 +++--- 10 files changed, 25 insertions(+), 23 deletions(-) diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c index 151f40bbaf8..fcdc5f14345 100644 --- a/mono/metadata/appdomain.c +++ b/mono/metadata/appdomain.c @@ -2054,7 +2054,7 @@ ves_icall_System_Reflection_Assembly_LoadFrom (MonoStringHandle fname, MonoBoole if (!is_ok (error)) goto leave; - MonoAssembly *ass = mono_assembly_open_a_lot (filename, &status, refOnly, TRUE); + MonoAssembly *ass = mono_assembly_open_predicate (filename, refOnly, TRUE, NULL, NULL, &status); if (!ass) { if (status == MONO_IMAGE_IMAGE_INVALID) diff --git a/mono/metadata/assembly.h b/mono/metadata/assembly.h index 0cde65a2b5b..9b12cafdf66 100644 --- a/mono/metadata/assembly.h +++ b/mono/metadata/assembly.h @@ -8,8 +8,10 @@ MONO_BEGIN_DECLS MONO_API void mono_assemblies_init (void); MONO_API void mono_assemblies_cleanup (void); +MONO_RT_EXTERNAL_ONLY MONO_API MonoAssembly *mono_assembly_open (const char *filename, MonoImageOpenStatus *status); +MONO_RT_EXTERNAL_ONLY MONO_API MonoAssembly *mono_assembly_open_full (const char *filename, MonoImageOpenStatus *status, mono_bool refonly); diff --git a/mono/metadata/attach.c b/mono/metadata/attach.c index 72330bbc4fb..6aba8e215b4 100644 --- a/mono/metadata/attach.c +++ b/mono/metadata/attach.c @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include #include @@ -275,7 +275,7 @@ mono_attach_load_agent (MonoDomain *domain, char *agent, char *args, MonoObject gpointer pa [1]; MonoImageOpenStatus open_status; - agent_assembly = mono_assembly_open (agent, &open_status); + agent_assembly = mono_assembly_open_predicate (agent, FALSE, FALSE, NULL, NULL, &open_status); if (!agent_assembly) { fprintf (stderr, "Cannot open agent assembly '%s': %s.\n", agent, mono_image_strerror (open_status)); g_free (agent); diff --git a/mono/metadata/coree.c b/mono/metadata/coree.c index 0ce8810d4c2..295ab4e928c 100644 --- a/mono/metadata/coree.c +++ b/mono/metadata/coree.c @@ -19,7 +19,7 @@ #include "cil-coff.h" #include "metadata-internals.h" #include "image.h" -#include "assembly.h" +#include "assembly-internals.h" #include "domain-internals.h" #include "appdomain.h" #include "object.h" @@ -119,7 +119,7 @@ BOOL STDMETHODCALLTYPE _CorDllMain(HINSTANCE hInst, DWORD dwReason, LPVOID lpRes * probably be delayed until the first call to an exported function. */ if (image->tables [MONO_TABLE_ASSEMBLY].rows && ((MonoCLIImageInfo*) image->image_info)->cli_cli_header.ch_vtable_fixups.rva) - assembly = mono_assembly_open (file_name, NULL); + assembly = mono_assembly_open_predicate (file_name, FALSE, FALSE, NULL, NULL, NULL); g_free (file_name); break; @@ -170,7 +170,7 @@ __int32 STDMETHODCALLTYPE _CorExeMain(void) ExitProcess (1); } - assembly = mono_assembly_open (file_name, NULL); + assembly = mono_assembly_open_predicate (file_name, FALSE, FALSE, NULL, NULL, NULL); mono_close_exe_image (); if (!assembly) { g_free (file_name); diff --git a/mono/metadata/domain.c b/mono/metadata/domain.c index b3fc90a4be5..b4e5148432d 100644 --- a/mono/metadata/domain.c +++ b/mono/metadata/domain.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include #include #include #include @@ -992,10 +992,10 @@ mono_domain_assembly_open (MonoDomain *domain, const char *name) current = mono_domain_get (); mono_domain_set (domain, FALSE); - ass = mono_assembly_open (name, NULL); + ass = mono_assembly_open_predicate (name, FALSE, FALSE, NULL, NULL, NULL); mono_domain_set (current, FALSE); } else { - ass = mono_assembly_open (name, NULL); + ass = mono_assembly_open_predicate (name, FALSE, FALSE, NULL, NULL, NULL); } return ass; diff --git a/mono/metadata/mono-security.c b/mono/metadata/mono-security.c index 0d770f70cdc..28b209d4f31 100644 --- a/mono/metadata/mono-security.c +++ b/mono/metadata/mono-security.c @@ -12,7 +12,7 @@ #include #endif -#include +#include #include #include #include @@ -592,7 +592,7 @@ void invoke_protected_memory_method (MonoArray *data, MonoObject *scope, gboolea if (system_security_assembly == NULL) { system_security_assembly = mono_image_loaded ("System.Security"); if (!system_security_assembly) { - MonoAssembly *sa = mono_assembly_open ("System.Security.dll", NULL); + MonoAssembly *sa = mono_assembly_open_predicate ("System.Security.dll", FALSE, FALSE, NULL, NULL, NULL); if (!sa) g_assert_not_reached (); system_security_assembly = mono_assembly_get_image (sa); diff --git a/mono/metadata/w32socket.c b/mono/metadata/w32socket.c index 8bc8b49a8c5..bd221429641 100644 --- a/mono/metadata/w32socket.c +++ b/mono/metadata/w32socket.c @@ -47,7 +47,7 @@ #include #include -#include +#include #include #include #include @@ -641,7 +641,7 @@ get_socket_assembly (void) socket_assembly = mono_image_loaded ("System"); if (!socket_assembly) { - MonoAssembly *sa = mono_assembly_open ("System.dll", NULL); + MonoAssembly *sa = mono_assembly_open_predicate ("System.dll", FALSE, FALSE, NULL, NULL, NULL); if (!sa) { g_assert_not_reached (); @@ -1973,7 +1973,7 @@ ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal (gsize sock, gi if (mono_posix_image == NULL) { mono_posix_image = mono_image_loaded ("Mono.Posix"); if (!mono_posix_image) { - MonoAssembly *sa = mono_assembly_open ("Mono.Posix.dll", NULL); + MonoAssembly *sa = mono_assembly_open_predicate ("Mono.Posix.dll", FALSE, FALSE, NULL, NULL, NULL); if (!sa) { *werror = WSAENOPROTOOPT; return; diff --git a/mono/mini/driver.c b/mono/mini/driver.c index 9674a350f90..7a646898977 100644 --- a/mono/mini/driver.c +++ b/mono/mini/driver.c @@ -21,7 +21,7 @@ #include #endif -#include +#include #include #include #include @@ -536,7 +536,7 @@ mini_regression_list (int verbose, int count, char *images []) total_run = total = 0; for (i = 0; i < count; ++i) { - ass = mono_assembly_open (images [i], NULL); + ass = mono_assembly_open_predicate (images [i], FALSE, FALSE, NULL, NULL, NULL); if (!ass) { g_warning ("failed to load assembly: %s", images [i]); continue; @@ -1122,7 +1122,7 @@ load_agent (MonoDomain *domain, char *desc) args = NULL; } - agent_assembly = mono_assembly_open (agent, &open_status); + agent_assembly = mono_assembly_open_predicate (agent, FALSE, FALSE, NULL, NULL, &open_status); if (!agent_assembly) { fprintf (stderr, "Cannot open agent assembly '%s': %s.\n", agent, mono_image_strerror (open_status)); g_free (agent); @@ -2121,7 +2121,7 @@ mono_main (int argc, char* argv[]) jit_info_table_test (domain); #endif - assembly = mono_assembly_open (aname, &open_status); + assembly = mono_assembly_open_predicate (aname, FALSE, FALSE, NULL, NULL, &open_status); if (!assembly) { fprintf (stderr, "Cannot open assembly '%s': %s.\n", aname, mono_image_strerror (open_status)); mini_cleanup (domain); diff --git a/mono/mini/interp/interp.c b/mono/mini/interp/interp.c index 72fcf9f1311..9207195fa15 100644 --- a/mono/mini/interp/interp.c +++ b/mono/mini/interp/interp.c @@ -36,7 +36,7 @@ /* trim excessive headers */ #include -#include +#include #include #include #include @@ -4535,7 +4535,7 @@ mono_interp_regression_list (int verbose, int count, char *images []) total_run = total = 0; for (i = 0; i < count; ++i) { - MonoAssembly *ass = mono_assembly_open (images [i], NULL); + MonoAssembly *ass = mono_assembly_open_predicate (images [i], FALSE, FALSE, NULL, NULL, NULL); if (!ass) { g_warning ("failed to load assembly: %s", images [i]); continue; diff --git a/tools/pedump/pedump.c b/tools/pedump/pedump.c index 6ae2a1e1e49..072b535f299 100644 --- a/tools/pedump/pedump.c +++ b/tools/pedump/pedump.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include @@ -523,7 +523,7 @@ try_load_from (MonoAssembly **assembly, const gchar *path1, const gchar *path2, *assembly = NULL; fullpath = g_build_filename (path1, path2, path3, path4, NULL); if (g_file_test (fullpath, G_FILE_TEST_IS_REGULAR)) - *assembly = mono_assembly_open_full (fullpath, NULL, refonly); + *assembly = mono_assembly_open_predicate (fullpath, refonly, FALSE, NULL, NULL, NULL); g_free (fullpath); return (*assembly != NULL); @@ -727,7 +727,7 @@ main (int argc, char *argv []) mono_verifier_set_mode (verifier_mode); - assembly = mono_assembly_open (file, NULL); + assembly = mono_assembly_open_predicate (file, FALSE, FALSE, NULL, NULL, NULL); /*fake an assembly for netmodules so the verifier works*/ if (!assembly && (image = mono_image_open (file, &status)) && image->tables [MONO_TABLE_ASSEMBLY].rows == 0) { assembly = g_new0 (MonoAssembly, 1); -- 2.25.1