diff options
| author | Kamil Rytarowski <n54@gmx.com> | 2018-02-05 13:16:22 +0000 |
|---|---|---|
| committer | Kamil Rytarowski <n54@gmx.com> | 2018-02-05 13:16:22 +0000 |
| commit | 8a4bf06ba9949367fc884dc31d7783c8b5567885 (patch) | |
| tree | c50f7a6772c7666c11badcd38a99021a1881a4a3 /lldb/source/Plugins/Process | |
| parent | 40f6428530b643fecd85cdbab0a744534921a4f9 (diff) | |
| download | bcm5719-llvm-8a4bf06ba9949367fc884dc31d7783c8b5567885.tar.gz bcm5719-llvm-8a4bf06ba9949367fc884dc31d7783c8b5567885.zip | |
Fix a crash in *NetBSD::Factory::Launch
Summary:
We cannot call process_up->SetState() inside
the NativeProcessNetBSD::Factory::Launch
function because it triggers a NULL pointer
deference.
The generic code for launching a process in:
GDBRemoteCommunicationServerLLGS::LaunchProcess
sets the m_debugged_process_up pointer after
a successful call to m_process_factory.Launch().
If we attempt to call process_up->SetState()
inside a platform specific Launch function we
end up dereferencing a NULL pointer in
NativeProcessProtocol::GetCurrentThreadID().
Use the proper call process_up->SetState(,false)
that sets notify_delegates to false.
Sponsored by <The NetBSD Foundation>
Reviewers: labath, joerg
Reviewed By: labath
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D42868
llvm-svn: 324234
Diffstat (limited to 'lldb/source/Plugins/Process')
| -rw-r--r-- | lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp index 45eadff4a57..dac2aa5d4dd 100644 --- a/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp +++ b/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp @@ -113,7 +113,7 @@ NativeProcessNetBSD::Factory::Launch(ProcessLaunchInfo &launch_info, for (const auto &thread : process_up->m_threads) static_cast<NativeThreadNetBSD &>(*thread).SetStoppedBySignal(SIGSTOP); - process_up->SetState(StateType::eStateStopped); + process_up->SetState(StateType::eStateStopped, false); return std::move(process_up); } |

