Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Kliger (λgeek) <akliger@gmail.com>2018-05-03 20:10:34 +0300
committerGitHub <noreply@github.com>2018-05-03 20:10:34 +0300
commita920e7cdb6c5608a0c92c59fd8212f5bfc91b473 (patch)
tree4ead726be646f5758e977a85cdc46fd9325b9da0
parentf71b208ca7b41a2a97ca70b955df0c4c411ce8e5 (diff)
[loader] If binding redirection redirects to the same version, ignore it (#8547)
If you load Foo.dll and it happens to be version 2.0.0.0 and an app.config says to redirect all versions of Foo.dll to version 2.0.0.0, we're there already - don't close the image and probe again, that's silly.
-rw-r--r--mono/metadata/assembly.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mono/metadata/assembly.c b/mono/metadata/assembly.c
index 8f4bbb88352..c76d46da6f5 100644
--- a/mono/metadata/assembly.c
+++ b/mono/metadata/assembly.c
@@ -2385,7 +2385,7 @@ mono_assembly_binding_applies_to_image (MonoImage* image, MonoImageOpenStatus *s
MonoAssembly *result_ass = NULL;
MonoAssemblyName *result_name = &probed_aname;
result_name = mono_assembly_apply_binding (result_name, &dest_name);
- if (result_name != &probed_aname) {
+ if (result_name != &probed_aname && !mono_assembly_names_equal (result_name, &probed_aname)) {
if (mono_trace_is_traced (G_LOG_LEVEL_INFO, MONO_TRACE_ASSEMBLY)) {
char *probed_fullname = mono_stringify_assembly_name (&probed_aname);
char *result_fullname = mono_stringify_assembly_name (result_name);