| OLD | NEW |
| 1 Name: mach_override | 1 Name: mach_override |
| 2 Short Name: Part of the mach_star project | 2 Short Name: Part of the mach_star project |
| 3 Version: Unknown | 3 Version: Unknown |
| 4 URL: https://github.com/rentzsch/mach_star | 4 URL: https://github.com/rentzsch/mach_star |
| 5 Date: 04/18/2011 | 5 Date: 08/19/2011 |
| 6 Revision: 32c4560eb09848073f69 | 6 Revision: 87f491f8acef924d2ba90dd55fc23ad64f9d5bbd |
| 7 License: MIT | 7 License: MIT |
| 8 Security Critical: Yes | 8 Security Critical: Yes |
| 9 | 9 |
| 10 | 10 |
| 11 Description: | 11 Description: |
| 12 This is the mach_override part of mach_star, namely: | 12 This is the mach_override part of mach_star, namely: |
| 13 | 13 |
| 14 https://github.com/rentzsch/mach_star/tree/aeb1720815c7255070da0f548267ccfdf7b
d50b7 | 14 https://github.com/rentzsch/mach_star/tree/87f491f8acef924d2ba90dd55fc23ad64f9
d5bbd |
| 15 | 15 |
| 16 This package is used to replace framework functions with different | 16 This package is used to replace framework functions with different |
| 17 implementations at run time. | 17 implementations at run time. |
| 18 | 18 |
| 19 | 19 |
| 20 Local Modifications: | 20 Local Modifications: |
| 21 | 21 |
| 22 Enabled makeIslandExecutable for 32-bit i386. Main executables linked and run | 22 reentryIsland is allocated in high memory with vm_allocate rather than the |
| 23 on Mac OS X 10.7 ("Lion") have non-executable heap pages by default. See | 23 heap with malloc by changing the allocation policy to kAllocateHigh. It |
| 24 http://crbug.com/79642. | 24 appears probable that putting the reentry island in the heap causes its page |
| 25 | 25 to lose execute permission at some point under some circumstances, which |
| 26 Changed the logic surrounding calls to makeIslandExecutable so that | 26 results in a crash on Lion. This modification is temoprary to simply test |
| 27 mach_override_ptr can return successfully when originalFunctionReentryIsland, | 27 out the theory. If proven, the code will be improved somewhat. |
| 28 an optional argument, is NULL. Failure in makeIslandExecutable will now | 28 http://crbug.com/93736. |
| 29 trigger cleanup of allocated memory. | |
| 30 | |
| 31 Changed allocateBranchIsland to use a more appropriate address range per | |
| 32 http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/Lau
nchTime/Articles/Prebinding.html. | |
| 33 The range for x86 (32-bit) with kAllocateHigh set is now [0xffc00000, | |
| 34 0xffe00000). In this configuration, the loop is now guaranteed to terminate | |
| 35 instead of exceeding its permitted range. Previously, this function would | |
| 36 begin looking for a page at 0xfefff000 and would not stop, even after wrapping | |
| 37 around to low memory. The URL above states 0xfefff000 is within a range marked | |
| 38 "Reserved for use by the pasteboard and other system services. Do not use this | |
| 39 address range." | |
| OLD | NEW |