Make sure that elf_image structure is copied.
A previous change modified the code so that a pointer to the elf_image structure from the map data was returned instead of copied. This can cause a race condition when doing local unwinds if the map needs to be rebuilt. One thread might have a pointer to a freed data structure. To fix this, make sure that the elf_image is always copied when the contents are going to be used. In addition, remove the map pointer in the mapped data because it could also be stale when a local unwind causes a map rebuild. Add a big comment in front of the elf_image structure to explain this so it won't happen again. Bug: 27123610 Change-Id: I09166be04b62b32db82a2b85282e464924e69e2d
Loading
Please sign in to comment