Make DacValidateMD more resilient to invalid MethodDesc (#79846)
authorJan Vorlicek <janvorli@microsoft.com>
Tue, 20 Dec 2022 18:23:25 +0000 (19:23 +0100)
committerGitHub <noreply@github.com>
Tue, 20 Dec 2022 18:23:25 +0000 (19:23 +0100)
commit934e583701e03abe9d8a693618afd36489e0ba04
treefd8246fb79866152a09c4a18cb6034b8bcba09c0
parent4ee88f09aff0b1a6f20daa8dd723342dde37813e
Make DacValidateMD more resilient to invalid MethodDesc (#79846)

The DacValidateMD is not resilient to invalid MethodDesc that contains
NULL in its m_pMethTab field. It was found when using the ClrMD in the
BenchmarkDotNet disassembler code which is trying to find if some constants
in the code represent MethodDesc so that it can dump the related method
name.

This change fixes it by checking the MethodTable after it is extracted
from the MethodDesc. There are two values that are not translated between
the target and the debugger sides - NULL and -1. So I have added handling
both as invalid there.
src/coreclr/debug/daccess/request.cpp