[Lldb-commits] [lldb] r324234 - Fix a crash in *NetBSD::Factory::Launch

Hans Wennborg via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 6 01:44:27 PST 2018


Merged to 6.0 in r324327.

On Mon, Feb 5, 2018 at 2:16 PM, Kamil Rytarowski via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
> Author: kamil
> Date: Mon Feb  5 05:16:22 2018
> New Revision: 324234
>
> URL: http://llvm.org/viewvc/llvm-project?rev=324234&view=rev
> Log:
> 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
>
> Modified:
>     lldb/trunk/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
>
> Modified: lldb/trunk/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp?rev=324234&r1=324233&r2=324234&view=diff
> ==============================================================================
> --- lldb/trunk/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (original)
> +++ lldb/trunk/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp Mon Feb  5 05:16:22 2018
> @@ -113,7 +113,7 @@ NativeProcessNetBSD::Factory::Launch(Pro
>
>    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);
>  }
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


More information about the lldb-commits mailing list