From 9e22ffbebf76527fd9297281e3c1ebd61c11001d Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Thu, 27 Oct 2022 21:56:15 -0700 Subject: [PATCH] [ntcore] Fix null deref in NT3 client (#4530) --- ntcore/src/main/native/cpp/NetworkClient.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ntcore/src/main/native/cpp/NetworkClient.cpp b/ntcore/src/main/native/cpp/NetworkClient.cpp index 7c30afad98..f1067d7f33 100644 --- a/ntcore/src/main/native/cpp/NetworkClient.cpp +++ b/ntcore/src/main/native/cpp/NetworkClient.cpp @@ -242,7 +242,9 @@ NCImpl3::~NCImpl3() { void NCImpl3::HandleLocal() { m_localQueue.ReadQueue(&m_localMsgs); - m_clientImpl->HandleLocal(m_localMsgs); + if (m_clientImpl) { + m_clientImpl->HandleLocal(m_localMsgs); + } } void NCImpl3::TcpConnected(uv::Tcp& tcp) { @@ -354,8 +356,10 @@ NCImpl4::NCImpl4(int inst, std::string_view id, // set up flush async m_flush = uv::Async<>::Create(m_loop); m_flush->wakeup.connect([this] { - HandleLocal(); - m_clientImpl->SendValues(m_loop.Now().count()); + if (m_clientImpl) { + HandleLocal(); + m_clientImpl->SendValues(m_loop.Now().count()); + } }); m_flushAtomic = m_flush.get();