Fix #16525: ObjectCode freed wrongly because of lack of info header check
`checkUnload` currently doesn't check the info header of static objects. Thus, it may free an `ObjectCode` struct wrongly even if there's still a live static object whose info header lies in a mapped section of that `ObjectCode`. This fixes the issue by adding an appropriate check. (cherry picked from commit fc6b23be)
Showing
- rts/CheckUnload.c 1 addition, 0 deletionsrts/CheckUnload.c
- rts/Linker.c 6 additions, 0 deletionsrts/Linker.c
- rts/linker/M32Alloc.c 1 addition, 1 deletionrts/linker/M32Alloc.c
- testsuite/tests/ghci/T16525a/A.hs 12 additions, 0 deletionstestsuite/tests/ghci/T16525a/A.hs
- testsuite/tests/ghci/T16525a/B.hs 3 additions, 0 deletionstestsuite/tests/ghci/T16525a/B.hs
- testsuite/tests/ghci/T16525a/T16525a.script 6 additions, 0 deletionstestsuite/tests/ghci/T16525a/T16525a.script
- testsuite/tests/ghci/T16525a/T16525a.stdout 0 additions, 0 deletionstestsuite/tests/ghci/T16525a/T16525a.stdout
- testsuite/tests/ghci/T16525a/all.T 5 additions, 0 deletionstestsuite/tests/ghci/T16525a/all.T
Loading
Please register or sign in to comment