From c72f564f65581b5efff4d1c57ff3da0b70f1cd28 Mon Sep 17 00:00:00 2001 From: Vaci Date: Thu, 8 Jul 2021 17:39:01 +0100 Subject: [PATCH 1/2] Avoid proceeding to step 1 until m_subscription is non-null findSubscription() may return a null pointer that is used unchecked in step 1, --- aeron-archive/src/main/cpp/client/AeronArchive.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aeron-archive/src/main/cpp/client/AeronArchive.cpp b/aeron-archive/src/main/cpp/client/AeronArchive.cpp index ae24d30e6a..33217474b4 100644 --- a/aeron-archive/src/main/cpp/client/AeronArchive.cpp +++ b/aeron-archive/src/main/cpp/client/AeronArchive.cpp @@ -76,7 +76,7 @@ std::shared_ptr AeronArchive::AsyncConnect::poll() m_step = 1; } - if (1 == m_step) + if (1 == m_step && m_subscription) { std::string controlResponseChannel = m_subscription->tryResolveChannelEndpointPort(); if (controlResponseChannel.empty()) From 232ef0158bff3be42b024237a6142f6937521d09 Mon Sep 17 00:00:00 2001 From: Vaci Date: Fri, 9 Jul 2021 09:52:05 +0100 Subject: [PATCH 2/2] Avoid null pointer access in timeout message --- aeron-archive/src/main/cpp/client/AeronArchive.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aeron-archive/src/main/cpp/client/AeronArchive.cpp b/aeron-archive/src/main/cpp/client/AeronArchive.cpp index 33217474b4..e93506b4fa 100644 --- a/aeron-archive/src/main/cpp/client/AeronArchive.cpp +++ b/aeron-archive/src/main/cpp/client/AeronArchive.cpp @@ -41,8 +41,8 @@ std::shared_ptr AeronArchive::AsyncConnect::poll() throw TimeoutException( "Archive connect timeout: step=" + std::to_string(m_step) + (m_step < 2 ? - " publication.uri=" + m_publication->channel() : - " subscription.uri=" + m_subscription->channel()), + " publication.uri=" + (m_publication ? m_publication->channel() : "") : + " subscription.uri=" + (m_subscription ? m_subscription->channel() : "")), SOURCEINFO); }