Fix syscall param msg->desc.port.name on macOS 10.12. bz#379373

Based upon patch from Louis Brunner.
This commit is contained in:
Rhys Kidd 2017-09-10 01:12:15 -04:00
parent 3117cd9637
commit 128fd6e6a5
5 changed files with 17 additions and 57 deletions

2
NEWS
View File

@ -35,6 +35,8 @@ To see details of a given bug, visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
where XXXXXX is the bug number as listed below.
379373 Fix syscall param msg->desc.port.name points to uninitialised byte(s)
on macOS 10.12
379748 Fix missing pselect syscall (OS X 10.11)
380397 s390x: __GI_strcspn() replacemenet needed
381162 possible array overrun in VEX register allocator

View File

@ -9580,8 +9580,20 @@ PRE(kernelrpc_mach_port_construct_trap)
{
UWord a1; UWord a2; ULong a3; UWord a4;
munge_wwlw(&a1, &a2, &a3, &a4, ARG1, ARG2, ARG3, ARG4, ARG5);
PRINT("kernelrpc_mach_port_construct_trap(FIXME)"
"(%lx,%lx,%llx,%lx)", a1, a2, a3, a4);
PRINT("kernelrpc_mach_port_construct_trap"
"(target: %s, options: %#lx, content: %llx, name: %p)",
name_for_port(a1), a2, a3, *(mach_port_name_t**)a4);
PRE_MEM_WRITE("kernelrpc_mach_port_construct_trap(name)", a4,
sizeof(mach_port_name_t*));
}
POST(kernelrpc_mach_port_construct_trap)
{
UWord a1; UWord a2; ULong a3; UWord a4;
munge_wwlw(&a1, &a2, &a3, &a4, ARG1, ARG2, ARG3, ARG4, ARG5);
PRINT("-> name:%p", *(mach_port_name_t**)a4);
if (ML_(safe_to_deref)((mach_port_name_t*)a4, sizeof(mach_port_name_t*))) {
POST_MEM_WRITE(a4, sizeof(mach_port_name_t*));
}
}
PRE(kernelrpc_mach_port_destruct_trap)
@ -10597,7 +10609,7 @@ const SyscallTableEntry ML_(mach_trap_table)[] = {
# endif
# if DARWIN_VERS >= DARWIN_10_9
MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(24), kernelrpc_mach_port_construct_trap),
MACXY(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(24), kernelrpc_mach_port_construct_trap),
MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(25), kernelrpc_mach_port_destruct_trap),
# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(24)),

View File

@ -665,24 +665,6 @@
obj:*GPUSupport.framework*GPUSupportMercury*
}
{
OSX1010:mach_msg_trap-1
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*libsystem_kernel.dylib*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
{
OSX1010:mach_msg_trap-2
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*SystemConfiguration.framework*SystemConfiguration*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
# See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's
# unavoidable due to BSD setenv() semantics.
{

View File

@ -724,24 +724,6 @@
obj:*GPUSupport.framework*GPUSupportMercury*
}
{
OSX1011:mach_msg_trap-1
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*libsystem_kernel.dylib*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
{
OSX1011:mach_msg_trap-2
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*SystemConfiguration.framework*SystemConfiguration*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
# See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's
# unavoidable due to BSD setenv() semantics.
{

View File

@ -749,24 +749,6 @@
obj:*GPUSupport.framework*GPUSupportMercury*
}
{
OSX1012:mach_msg_trap-1
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*libsystem_kernel.dylib*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
{
OSX1012:mach_msg_trap-2
Memcheck:Param
msg->desc.port.name
fun:mach_msg_trap
obj:*SystemConfiguration.framework*SystemConfiguration*
obj:*SystemConfiguration.framework*SystemConfiguration*
}
# See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's
# unavoidable due to BSD setenv() semantics.
{