-
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
Make DacValidateMD and DacValidateMethodTable more resilient #90794
Make DacValidateMD and DacValidateMethodTable more resilient #90794
Conversation
Make both methods more resilient to the case of invalid MethodDesc and MethodTable with value -1. Close dotnet#90691
Tagging subscribers to this area: @tommcdon Issue DetailsMake both methods more resilient to the case of invalid MethodDesc and MethodTable with value -1. This fixes a problem with benchmark.NET dissassembler crashing due to MethodDesc and MethodTable passed to these two validation methods being -1 (0xffffffffffff). Close #90691
|
cc: @EgorBo, @adamsitnik, @stephentoub |
Thanks.
Do we know what causes these situations in the first place? |
Can we get this into 8.0 as well? |
Yes, the disassembler tries to translate various constants into |
I plan to create a porting PR once this one is approved. |
/backport to release/8.0-rc1 |
Started backporting to release/8.0-rc1: https://github.com/dotnet/runtime/actions/runs/5903805694 |
Are we still going to crash when somebody has -2, -3, -4, ... in their code and disassembler tries to get MethodDesc for it? This does not look like the right approach to fix this bug. |
The -1 is special in the DAC code. There are two values that DAC doesn't try to translate between the debuggee and debugger address spaces. These are 0 and -1. All the other would go through a translation and get dismissed there. |
Ah ok. |
The CI failure is #76831 |
Is backporting to 8.0-RC1 branch enough or it needs a backport to general release-8.0 branch to make it to RC2 and then GA? |
Hi @EgorBo! No action is necessary as the fix was automatically merged into release/8.0. |
Make both methods more resilient to the case of invalid MethodDesc and MethodTable with value -1.
This fixes a problem with benchmark.NET dissassembler crashing due to MethodDesc and MethodTable passed to these two validation methods being -1 (0xffffffffffff).
Close #90691