messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

commit d4f49fede08a33dcc8f0ed6d0b0b06c63072b94d
parent 9f5f98ea13aafc08c3444585b788789ade61bb1f
Author: Jacki <jacki@thejackimonster.de>
Date:   Sat, 10 Feb 2024 06:52:33 +0100

Fix segfault in deletion dialog

Signed-off-by: Jacki <jacki@thejackimonster.de>

Diffstat:
Msrc/ui/chat.c | 8+++++---
Msrc/ui/delete_messages.c | 13++++++++-----
2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/ui/chat.c b/src/ui/chat.c @@ -376,7 +376,12 @@ handle_chat_selection_delete_button_click(UNUSED GtkButton *button, GList *selected = gtk_list_box_get_selected_rows(handle->messages_listbox); if (app->settings.hide_delete_dialog) + { _delete_messages_callback(app, selected, 0); + + if (selected) + g_list_free(selected); + } else { ui_delete_messages_dialog_init(app, &(app->ui.delete_messages)); @@ -389,9 +394,6 @@ handle_chat_selection_delete_button_click(UNUSED GtkButton *button, gtk_widget_show(GTK_WIDGET(app->ui.delete_messages.dialog)); } - - if (selected) - g_list_free(selected); } static void diff --git a/src/ui/delete_messages.c b/src/ui/delete_messages.c @@ -57,9 +57,9 @@ handle_confirm_button_click(UNUSED GtkButton *button, if (app->ui.delete_messages.callback) app->ui.delete_messages.callback( - app, - app->ui.delete_messages.selected, - delay + app, + app->ui.delete_messages.selected, + delay ); gtk_window_close(GTK_WINDOW(app->ui.delete_messages.dialog)); @@ -138,8 +138,8 @@ ui_delete_messages_dialog_init(MESSENGER_Application *app, void ui_delete_messages_dialog_link(UI_DELETE_MESSAGES_Handle *handle, - UI_DELETE_MESSAGES_Callback callback, - GList *selected) + UI_DELETE_MESSAGES_Callback callback, + GList *selected) { handle->selected = selected; handle->callback = callback; @@ -150,5 +150,8 @@ ui_delete_messages_dialog_cleanup(UI_DELETE_MESSAGES_Handle *handle) { g_object_unref(handle->builder); + if (handle->selected) + g_list_free(handle->selected); + memset(handle, 0, sizeof(*handle)); }