talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 0c7308ca2b1075894669bc61ddf7f3a1ac4f9cb4
parent 1850c52bb1dbf16e55a80258b63c6c6f825d49ce
Author: Jonathan Boeing <jonathan@claws-mail.org>
Date:   Thu,  9 Sep 2021 22:09:33 -0700

Fix crash in address book edit person details

Bug 4534 'Address book causing claws to terminate unexpectedly'

Clearing the list store triggers a cursor-changed signal, leading to a
potential crash with a use-after-free

Diffstat:
Msrc/editaddress.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/editaddress.c b/src/editaddress.c @@ -1710,12 +1710,12 @@ static gboolean addressbook_edit_person_close( gboolean cancelled ) listEMail = edit_person_build_email_list(); listAttrib = edit_person_build_attrib_list(); if( cancelled ) { - addritem_free_list_email( listEMail ); - addritem_free_list_attribute( listAttrib ); model = gtk_tree_view_get_model(GTK_TREE_VIEW(personeditdlg.view_email)); gtk_list_store_clear(GTK_LIST_STORE(model)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(personeditdlg.view_attrib)); gtk_list_store_clear(GTK_LIST_STORE(model)); + addritem_free_list_email( listEMail ); + addritem_free_list_attribute( listAttrib ); if (!prefs_common.addressbook_use_editaddress_dialog) gtk_widget_hide( personeditdlg.container );