From aeca4c3fc7e97b17a70b972f1e8c664ab091a87a Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 3 Aug 2025 16:34:31 -0400 Subject: [PATCH] fixed #2215. Check streaming destination during cleanup --- libi2pd_client/SAM.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libi2pd_client/SAM.cpp b/libi2pd_client/SAM.cpp index 52ef1b10..09c2dfe9 100644 --- a/libi2pd_client/SAM.cpp +++ b/libi2pd_client/SAM.cpp @@ -1590,14 +1590,17 @@ namespace client if (dest) { auto streamingDest = dest->GetStreamingDestination (); - auto numStreams = streamingDest->GetNumStreams (); - if (numStreams > 0) - { - LogPrint (eLogInfo, "SAM: Session ", session->Name, " still has ", numStreams, " streams"); - ScheduleSessionCleanupTimer (session); + if (streamingDest) + { + auto numStreams = streamingDest->GetNumStreams (); + if (numStreams > 0) + { + LogPrint (eLogInfo, "SAM: Session ", session->Name, " still has ", numStreams, " streams"); + ScheduleSessionCleanupTimer (session); + } + else + LogPrint (eLogDebug, "SAM: Session ", session->Name, " terminated"); } - else - LogPrint (eLogDebug, "SAM: Session ", session->Name, " terminated"); } } // session's destructor is called here unless rescheduled