forked from OSchip/llvm-project
Prevent double release of mach ports
Summary: When a MIG routine returns KERN_FAILURE, the demux function will release any OOL resources like ports. In this case, task_port and thread_port will be released twice, potentially resulting in use after free of the ports. I don't think we can test this in any useful way rdar://problem/37331387 Reviewers: jasonmolenda Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D45011 llvm-svn: 328761
This commit is contained in:
parent
02eb974af5
commit
fa37026db3
|
@ -92,8 +92,6 @@ extern "C" kern_return_t catch_mach_exception_raise_state_identity(
|
|||
(uint64_t)(exc_data_count > 0 ? exc_data[0] : 0xBADDBADD),
|
||||
(uint64_t)(exc_data_count > 1 ? exc_data[1] : 0xBADDBADD));
|
||||
}
|
||||
mach_port_deallocate(mach_task_self(), task_port);
|
||||
mach_port_deallocate(mach_task_self(), thread_port);
|
||||
|
||||
return KERN_FAILURE;
|
||||
}
|
||||
|
|
|
@ -86,8 +86,6 @@ extern "C" kern_return_t catch_mach_exception_raise_state_identity(
|
|||
(uint64_t)(exc_data_count > 0 ? exc_data[0] : 0xBADDBADD),
|
||||
(uint64_t)(exc_data_count > 1 ? exc_data[1] : 0xBADDBADD));
|
||||
}
|
||||
mach_port_deallocate(mach_task_self(), task_port);
|
||||
mach_port_deallocate(mach_task_self(), thread_port);
|
||||
|
||||
return KERN_FAILURE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue