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.
This commit is contained in:
Tom Englund
2026-07-15 14:32:14 +02:00
committed by GitHub
parent 338bdbb323
commit d7fc7240f4
+2 -2
View File
@@ -74,14 +74,14 @@ CDRMLeaseResource::CDRMLeaseResource(SP<CWpDrmLeaseV1> resource_, SP<CDRMLeaseRe
m->m_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);