diff options
author | Koundinya Veluri <kouvel@users.noreply.github.com> | 2019-06-14 12:48:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-14 12:48:45 -0700 |
commit | 54d82b2c1b385025ea84a9fb8c60caa76f371f34 (patch) | |
tree | 79676bc6caaa02464f6d270c92db36114eb1630f /src/vm/eventpipe.h | |
parent | 261b860d3c1599724751135b56c605e3edc293bd (diff) | |
download | coreclr-54d82b2c1b385025ea84a9fb8c60caa76f371f34.tar.gz coreclr-54d82b2c1b385025ea84a9fb8c60caa76f371f34.tar.bz2 coreclr-54d82b2c1b385025ea84a9fb8c60caa76f371f34.zip |
Fix crash/corruption in VSD hash tables when backpatching entry point slots is enabled (#25158)
Fixes https://github.com/dotnet/coreclr/issues/25080
- The prober used to look for an item (`DispatchStub` or `ResolveCacheElem`) stores information specific to the table
- Cooperative GC mode guarantees that the information stored in the prober remains valid when the prober is reused to add a new item when one is not found
- The lock taken to record/backpatch an item's slot exits and reenters cooperative GC mode, which can cause the table to be reclaimed and replaced with a new table, and the prober still refers to the old table
- Upon adding the new item it may crash or corrupt some other memory
- Fixed by resetting the prober if a path is taken that may reenter cooperative GC mode
Diffstat (limited to 'src/vm/eventpipe.h')
0 files changed, 0 insertions, 0 deletions