From 5ef5596d879a28a9876271fb2d54e1021430aba7 Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Sat, 16 Jul 2022 11:29:50 +0100 Subject: [PATCH] Fix #982: random crash (SIGSEGV) while running two instances of geeqie https://github.com/BestImageViewer/geeqie/issues/982 User reports this fix works. --- src/advanced_exif.c | 11 +++++++++-- src/layout_util.c | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/advanced_exif.c b/src/advanced_exif.c index 0c9e4d6a..a6851ade 100644 --- a/src/advanced_exif.c +++ b/src/advanced_exif.c @@ -280,18 +280,25 @@ void advanced_exif_close(ExifWin *ew) if (!ew) return; advanced_exif_window_get_geometry(ew); + file_data_unref(ew->fd); gtk_widget_destroy(ew->window); + + g_free(ew); } -static void advanced_exif_delete_cb(GtkWidget *widget, GdkEvent *event, gpointer data) +static gboolean advanced_exif_delete_cb(GtkWidget *widget, GdkEvent *event, gpointer data) { ExifWin *ew = data; - advanced_exif_window_get_geometry(ew); + if (!ew) return FALSE; + advanced_exif_window_get_geometry(ew); file_data_unref(ew->fd); + g_free(ew); + + return FALSE; } static gint advanced_exif_sort_cb(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data) diff --git a/src/layout_util.c b/src/layout_util.c index e77b8c0e..60b53124 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -4167,10 +4167,12 @@ void layout_bars_close(LayoutWindow *lw) layout_bar_close(lw); } -static void layout_exif_window_destroy(GtkWidget *widget, gpointer data) +static gboolean layout_exif_window_destroy(GtkWidget *widget, gpointer data) { LayoutWindow *lw = data; lw->exif_window = NULL; + + return TRUE; } void layout_exif_window_new(LayoutWindow *lw) -- 2.20.1