[gnome-shell/fix-st-password-crash] st-password-entry: Fix crash when DConf changes after StEntry is destroyed




commit de6604e4c7ddfcfd5fc089c462ecd29316b44189
Author: Ray Strode <rstrode redhat com>
Date:   Tue Oct 12 15:15:50 2021 -0400

    st-password-entry: Fix crash when DConf changes after StEntry is destroyed
    
    commit 8721c5db37c1409dbb806c915e6c077e1c4b8c6b made StPasswordEntry
    honor the 'disable-show-password' setting.
    
    Unfortunately, it introduced a lifecycle bug where the signal handler
    for noticing setting changes can out live the entry itself.
    
    This commit fixes the problem by using g_signal_connect_object

 src/st/st-password-entry.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/src/st/st-password-entry.c b/src/st/st-password-entry.c
index 3dd8c6c1cf..d17eeefa46 100644
--- a/src/st/st-password-entry.c
+++ b/src/st/st-password-entry.c
@@ -229,10 +229,11 @@ st_password_entry_init (StPasswordEntry *entry)
 
   st_password_entry_set_show_peek_icon (entry, TRUE);
 
-  g_signal_connect (st_settings_get (),
-                    "notify::disable-show-password",
-                    G_CALLBACK (on_disable_show_password_changed),
-                    entry);
+  g_signal_connect_object (st_settings_get (),
+                           "notify::disable-show-password",
+                           G_CALLBACK (on_disable_show_password_changed),
+                           entry,
+                           0);
 
   clutter_text = st_entry_get_clutter_text (ST_ENTRY (entry));
   clutter_text_set_password_char (CLUTTER_TEXT (clutter_text), BLACK_CIRCLE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]