summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFadi Hanna <fadim@microsoft.com>2019-10-04 11:58:23 -0700
committerGitHub <noreply@github.com>2019-10-04 11:58:23 -0700
commit28f54a4013e85774e2a2793c5c7ca2b36948f996 (patch)
tree37766f681960b095d8a53ac47860066a21e001f0 /src
parent5fcd92cd8e44172b4bdd266fba9ce8938418540e (diff)
downloadcoreclr-28f54a4013e85774e2a2793c5c7ca2b36948f996.tar.gz
coreclr-28f54a4013e85774e2a2793c5c7ca2b36948f996.tar.bz2
coreclr-28f54a4013e85774e2a2793c5c7ca2b36948f996.zip
Handle AV caused by invalid IBC data (#27029) (#27034)
Make FindOrCreateAssociatedMethodDesc throw a type load exception instead of an AV, which can't be handled by EX_TRY/EX_CATCH on Unix systems.
Diffstat (limited to 'src')
-rw-r--r--src/vm/genmeth.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/vm/genmeth.cpp b/src/vm/genmeth.cpp
index 5d09cdfbb4..d664fdc0fd 100644
--- a/src/vm/genmeth.cpp
+++ b/src/vm/genmeth.cpp
@@ -802,7 +802,11 @@ MethodDesc::FindOrCreateAssociatedMethodDesc(MethodDesc* pDefMD,
// Some callers pass a pExactMT that is a subtype of a parent type of pDefMD.
// Find the actual exact parent of pDefMD.
pExactMT = pDefMD->GetExactDeclaringType(pExactMT);
- _ASSERTE(pExactMT != NULL);
+ if (pExactMT == NULL)
+ {
+ _ASSERTE(false);
+ COMPlusThrowHR(COR_E_TYPELOAD);
+ }
if (pDefMD->HasClassOrMethodInstantiation() || !methodInst.IsEmpty())
{