From e43916d7d1409e4031d56ee1704456bef55eeb1d Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 28 Aug 2020 23:09:38 +0200 Subject: Fix segfault when closing a window in multi-window reload mode Issue: * start feh --multiwindow --reload 5 * close a window with "x" * wait up to 5 seconds * segfault The issue was caused by the closed window's reload timer still being active even after the winwidget was free'd. --- src/winwidget.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/winwidget.c') diff --git a/src/winwidget.c b/src/winwidget.c index 6ff90ed..bfd987d 100644 --- a/src/winwidget.c +++ b/src/winwidget.c @@ -29,6 +29,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "winwidget.h" #include "options.h" #include "events.h" +#include "timers.h" #ifdef HAVE_INOTIFY #include @@ -673,6 +674,9 @@ void winwidget_destroy(winwidget winwid) #ifdef HAVE_INOTIFY winwidget_inotify_remove(winwid); #endif + if (opt.reload > 0 && opt.multiwindow) { + feh_remove_timer_by_data(winwid); + } winwidget_destroy_xwin(winwid); if (winwid->name) free(winwid->name); -- cgit v1.2.3