diff options
Diffstat (limited to 'src/runtime/mbitmap_allocheaders.go')
| -rw-r--r-- | src/runtime/mbitmap_allocheaders.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/mbitmap_allocheaders.go b/src/runtime/mbitmap_allocheaders.go index 77f5b4c990..319d71f92f 100644 --- a/src/runtime/mbitmap_allocheaders.go +++ b/src/runtime/mbitmap_allocheaders.go @@ -1078,6 +1078,11 @@ func getgcmask(ep any) (mask []byte) { for len(mask) > 0 && mask[len(mask)-1] == 0 { mask = mask[:len(mask)-1] } + + // Make sure we keep ep alive. We may have stopped referencing + // ep's data pointer sometime before this point and it's possible + // for that memory to get freed. + KeepAlive(ep) return } |
