notify: fix crash in notify_done() when terminal has been closed before notification

In server mode, if a terminal instance triggered a tracked
notification (e.g. a bell notification, or a kitty notification), then
the foot server crashed if the terminal instance was closed before the
notification.

This happened because the notify_done() callback's user supplied
argument was the terminal instance, and this pointer was not verified
before it was de-referenced.

Fix by searching the wayland global's list of terminal instances, and
ignore the callback if the wanted terminal instance is gone.

Closes #2397
This commit is contained in:
Daniel Eklöf 2026-06-23 17:20:45 +02:00
parent 73e6d21000
commit ebaa878dce
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 35 additions and 5 deletions

View file

@ -114,6 +114,9 @@
([#2364][2364]).
* Escape quotes in file names being DnD:ed on the command line
([#2363][2363]).
* Crash in `--server` mode, when a tracked notification is closed
after the associated terminal instance has been closed
([#2397][2397]).
[2353]: https://codeberg.org/dnkl/foot/issues/2353
[2352]: https://codeberg.org/dnkl/foot/issues/2352
@ -122,6 +125,7 @@
[2360]: https://codeberg.org/dnkl/foot/issues/2360
[2370]: https://codeberg.org/dnkl/foot/issues/2370
[2364]: https://codeberg.org/dnkl/foot/issues/2364
[2397]: https://codeberg.org/dnkl/foot/issues/2397
### Security