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_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);
|
||||
|
||||
Reference in New Issue
Block a user