Fixes for bug#54388 "InternalsVisibleTo is case sensitive" * Fix the JIT so that...
authorKatelyn Gadd <kg@luminance.org>
Tue, 11 Apr 2017 09:34:43 +0000 (02:34 -0700)
committerMarek Safar <marek.safar@gmail.com>
Thu, 18 May 2017 17:00:28 +0000 (19:00 +0200)
commit20ab5bfe7ae2cf84cd9e6fdad9758ded9f687ca2
treef3a2c3420800e5dc86147b5337a4d8cd75eff2f0
parent4465db2b46ccbdde5d47e37a52aed63519aa4c3d
Fixes for bug#54388 "InternalsVisibleTo is case sensitive" * Fix the JIT so that access checks are performed on constructors * Use ASCII case insensitivity when performing cross-assembly access checks for internals * Update mcs to use case-insensitive comparisons when evaluating InternalsVisibleTo attributes for access checks (matching the new runtime behavior, and the behavior of roslyn)

This issue is actually a pair of bugs:
1. We don't perform any access checks for constructors (which can give a false impression of our behavior for this issue). This means that you can also invoke private constructors from other assemblies.
2. InternalsVisibleTo checks are done using strcmp instead of a case-insensitive comparison.
mcs/mcs/import.cs
mono/metadata/class.c
mono/mini/method-to-ir.c
mono/tests/Makefile.am [changed mode: 0644->0755]
mono/tests/internalsvisibleto-compilertest.cs [new file with mode: 0755]
mono/tests/internalsvisibleto-library.cs [new file with mode: 0644]
mono/tests/internalsvisibleto-runtimetest.cs [new file with mode: 0755]