-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using a default method on an interface to implement a static virtual interface method leads to memory corruption #107754
Labels
in-pr
There is an active PR which will close this issue when it is merged
needs-area-label
An area label is needed to ensure this gets routed to the appropriate area owners
Comments
dotnet-issue-labeler
bot
added
the
needs-area-label
An area label is needed to ensure this gets routed to the appropriate area owners
label
Sep 12, 2024
dotnet-policy-service
bot
added
the
untriaged
New issue has not been triaged by the area owner
label
Sep 12, 2024
davidwrighton
added a commit
to davidwrighton/runtime
that referenced
this issue
Sep 12, 2024
- Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes dotnet#107754
dotnet-policy-service
bot
added
the
in-pr
There is an active PR which will close this issue when it is merged
label
Sep 12, 2024
davidwrighton
added a commit
that referenced
this issue
Sep 13, 2024
- Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes #107754
dotnet-policy-service
bot
removed
the
untriaged
New issue has not been triaged by the area owner
label
Sep 13, 2024
github-actions bot
pushed a commit
that referenced
this issue
Sep 13, 2024
- Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes #107754
jeffschwMSFT
added a commit
that referenced
this issue
Sep 13, 2024
- Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes #107754 Co-authored-by: David Wrighton <davidwr@microsoft.com> Co-authored-by: Jeff Schwartz <jeffschw@microsoft.com>
jtschuster
pushed a commit
to jtschuster/runtime
that referenced
this issue
Sep 17, 2024
…07763) - Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes dotnet#107754
sirntar
pushed a commit
to sirntar/runtime
that referenced
this issue
Sep 30, 2024
…07763) - Use `TypeHandle::CanCastTo` instead of `MethodTable::CanCastTo` - The issue is that the `MethodTable` api requires cooperative mode, and the `TypeHandle` supports either mode Fixes dotnet#107754
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
in-pr
There is an active PR which will close this issue when it is merged
needs-area-label
An area label is needed to ensure this gets routed to the appropriate area owners
Description
There is a bug in the computation of static virtual method targets in the presence of variant dispatch and default interface methods that leads to unsafe memory usage.
Reproduction Steps
Run the following program. During the JIT of
M<U>
there is access to the GC heap that is not done in cooperative mode. This can be observed easily by using the check or debug builds of coreclr.Expected behavior
Program prints something like
Actual behavior
Under a check or debug build of coreclr, the result looks more like
Regression?
No
Known Workarounds
No response
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered: