Skip to content

Commit 39edf7c

Browse files
committed
Ignore assembly version when loading non-strong named reference assemblies (case 996473)
1 parent bbe6605 commit 39edf7c

File tree

3 files changed

+2
-18
lines changed

3 files changed

+2
-18
lines changed

mono/metadata/appdomain.c

+2-14
Original file line numberDiff line numberDiff line change
@@ -1789,19 +1789,6 @@ mono_domain_assembly_preload (MonoAssemblyName *aname,
17891789
return result;
17901790
}
17911791

1792-
/*
1793-
* Check whenever a given assembly was already loaded in the current appdomain.
1794-
*/
1795-
1796-
static gboolean ignore_version_and_key_when_finding_assemblies_already_loaded = FALSE;
1797-
1798-
void
1799-
mono_set_ignore_version_and_key_when_finding_assemblies_already_loaded(gboolean value)
1800-
{
1801-
ignore_version_and_key_when_finding_assemblies_already_loaded = value;
1802-
}
1803-
1804-
18051792
static MonoAssembly *
18061793
mono_domain_assembly_search (MonoAssemblyName *aname,
18071794
gpointer user_data)
@@ -1810,12 +1797,13 @@ mono_domain_assembly_search (MonoAssemblyName *aname,
18101797
GSList *tmp;
18111798
MonoAssembly *ass;
18121799
gboolean refonly = GPOINTER_TO_UINT (user_data);
1800+
const gboolean strong_name = aname->public_key_token[0] != 0;
18131801

18141802
mono_domain_assemblies_lock (domain);
18151803
for (tmp = domain->domain_assemblies; tmp; tmp = tmp->next) {
18161804
ass = tmp->data;
18171805
/* Dynamic assemblies can't match here in MS.NET */
1818-
if (ass->dynamic || refonly != ass->ref_only || !mono_assembly_names_equal2 (aname, &ass->aname, ignore_version_and_key_when_finding_assemblies_already_loaded))
1806+
if (ass->dynamic || refonly != ass->ref_only || !mono_assembly_names_equal2 (aname, &ass->aname, !strong_name))
18191807
continue;
18201808

18211809
mono_domain_assemblies_unlock (domain);

mono/metadata/appdomain.h

-3
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,6 @@ typedef gboolean (*MonoCoreClrPlatformCB) (const char *image_name);
213213
void
214214
mono_security_set_core_clr_platform_callback (MonoCoreClrPlatformCB callback);
215215

216-
void
217-
mono_set_ignore_version_and_key_when_finding_assemblies_already_loaded(gboolean value);
218-
219216
G_END_DECLS
220217
#endif /* _MONO_METADATA_APPDOMAIN_H_ */
221218

msvc/mono.def

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ mono_set_find_plugin_callback
4646
mono_set_commandline_arguments
4747
mono_set_signal_chaining
4848
mono_unity_socket_security_enabled_set
49-
mono_set_ignore_version_and_key_when_finding_assemblies_already_loaded
5049
mono_class_is_generic
5150
mono_class_is_inflated
5251
mono_unity_seh_handler

0 commit comments

Comments
 (0)