From d7fc7240f4efd0abac1c1f23f09b78b30b4e0782 Mon Sep 17 00:00:00 2001 From: Tom Englund Date: Wed, 15 Jul 2026 14:32:14 +0200 Subject: [PATCH] protocols: avoid crash in lease (#15417) when lease is destroyed the destroy listener nullptr deref m_lease, and all it uses it for is logging the fd number. capture the fd by value to avoid crashing. --- src/protocols/DRMLease.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/protocols/DRMLease.cpp b/src/protocols/DRMLease.cpp index 64f2b48fe..fef975bd3 100644 --- a/src/protocols/DRMLease.cpp +++ b/src/protocols/DRMLease.cpp @@ -74,14 +74,14 @@ CDRMLeaseResource::CDRMLeaseResource(SP resource_, SPm_monitor->m_isBeingLeased = true; } - m_listeners.destroyLease = m_lease->events.destroy.listen([this] { + m_listeners.destroyLease = m_lease->events.destroy.listen([this, fd = m_lease->leaseFD] { for (auto const& m : m_requested) { if (m && m->m_monitor) m->m_monitor->m_isBeingLeased = false; } m_resource->sendFinished(); - LOGM(Log::DEBUG, "Revoking lease for fd {}", m_lease->leaseFD); + LOGM(Log::DEBUG, "Revoking lease for fd {}", fd); }); LOGM(Log::DEBUG, "Granting lease, sending fd {}", m_lease->leaseFD);