Age | Commit message (Collapse) | Author |
|
[FIX] Stop using mach_host_self and host_page_size, fixing a port right leak. (Mark Mentovai)
|
|
It is incorrect to use mach_host_self without disposing of the send right to the host port with mach_port_deallocate when done with it. http://crbug.com/105513 shows the sorts of problems that can arise when send rights aren’t properly deallocated.
mach_host_self was only used by mach_override to be able to call host_page_size. host_page_size is unnecessary, because it always returns a constant value, PAGE_SIZE, which is also known at user-land compile time. See libsyscall/mach/mach_init.c. User code is better off just using this macro directly, and not fumbling with the system calls to obtain and properly dispose of a send right to the host port.
(You need to mach_port_deallocate the ports you get from mach_host_self and mach_thread_self, but you must not normally deallocate the one from mach_task_self, because mach_task_self is actually just a macro that references a global variable. It doesn’t add any port rights at all. See <mach/mach_init.h>. If you bypass the macro and call the real mach_task_self system call, you do need to call mach_port_deallocate, but this situation is incredibly rare.)
|
|
[FEATURE] Remove PROT_WRITE from islands and randomize allocations. (Ian Beer)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[NEW] Switch from homegrown lame custom x86 instruction parser to libudis86 disassembler to fix "some instructions unknown" errors. (Frerich Raabe)
|
|
This makes hooking the 'Tcl_EvalObjEx' function in the Tcl library on OS
X work. It probably fixes quite a few other cases in which a "some
instructions unknown!" messages was printed as well. As a nice side
effect, it allows throwing away the custom code for recognizing and
skipping instructions.
All tests still pass.
|
|
A robust disassembler capable of disassembling most (all?) of the
32bit & 64bit Intel assembler instructions. The plan is to use this
instead of our home-grown (and incomplete) disassembler.
|
|
|
|
|
|
|
|
|
|
* Add comment on MACH_OVERRIDE macro.
* Delete Doxygen.
|
|
|
|
|
|
|
|
Test passed.
|
|
and https://github.com/rentzsch/mach_star/pull/39.
They were causing basic tests to fail (10.8 x86_64).
|
|
|
|
|
|
Add "movsbl %sil, %ecx" to the list of known instructions.
|
|
10.8.
|
|
Speed up allocateBranchIsland
|
|
time.
|
|
|
|
|
|
|
|
|
|
|
|
Fix the compile time warning when building Chromium for 64 bits:
|
|
chromium/trunk/src/third_party/mach_override/mach_override.c:374:59:{374:25-374:97}{374:98-374:99}: error: '&' within '|' [-Werror,-Wbitwise-op-parentheses]
vm_address_t first = (uint64_t)originalFunctionAddress & ~(uint64_t)(((uint64_t)1 << 31) - 1) | ((uint64_t)1 << 31); // start in the middle of the page?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
chromium/trunk/src/third_party/mach_override/mach_override.c:374:59: note: place parentheses around the '&' expression to silence this warning
|
|
fix to override CGErrorBreakpoint
|
|
override CGErrorBreakpoint in CoreGraphics framework
|
|
Add "mov $imm, %eax"
|
|
work on 'write' on 32 OS X 10.7.
|
|
|
|
add another 64bit instruction
|
|
I got this when trying to overwrite a symbol in a 64bit Qt 4.6.1 build.
|
|
A few fixes, including compatibility with Rogue Amoeba's Instant On.
|
|
or might otherwise contain relative jmp instructions. This fixes incompatibility with Rogue Amoeba's Instant On component.
|
|
|
|
looks like it's based on obsolete code.
|
|
---
Go back to pre-51ae3d199463fa84548f466d649f0821d579fdaf branch islands for PowerPC. Because PowerPC uses ba (branch absolute) to jump to branch islands, the islands must be somewhere in the lowest or highest 32MB of address space.
|
|
---
Some cleanup (better suited for production use).
Some additions.
Also to stderr instead of stdout.
Not sure if you want to merge this (or how you think about such changes). Those are just my changes I have laying around here. I think I also will comment out my additions later on (because it works good now for me) and maybe you want to wait for that before merging.
|
|
---
mostly Xcode4 related
|