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 |