mirror of
https://github.com/hyprwm/Hyprland.git
synced 2026-08-24 10:04:19 -05:00
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:
@@ -74,14 +74,14 @@ CDRMLeaseResource::CDRMLeaseResource(SP<CWpDrmLeaseV1> resource_, SP<CDRMLeaseRe
|
|||||||
m->m_monitor->m_isBeingLeased = true;
|
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) {
|
for (auto const& m : m_requested) {
|
||||||
if (m && m->m_monitor)
|
if (m && m->m_monitor)
|
||||||
m->m_monitor->m_isBeingLeased = false;
|
m->m_monitor->m_isBeingLeased = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_resource->sendFinished();
|
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);
|
LOGM(Log::DEBUG, "Granting lease, sending fd {}", m_lease->leaseFD);
|
||||||
|
|||||||
Reference in New Issue
Block a user