forked from AuroraMiddleware/gtk
mountoperation: Free user_widgets list upon dialog destruction
There's a list user_widgets that contains all of the entries and selections during authentication. This is only freed upon finalizing the GtkMountOperation. It's possible (and true for the GVFS SMB implementation) that a MountOperation can have the gtk_mount_operation_ask_password_do_gtk () function called multiple times (i.e. bad password). The user_widgets list grows with now invalid pointers to old widgets (causing unexpected behavior and seg faults). Free the user_widgets list upon dialog destruction, we don't need it anymore. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5059 Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5058
This commit is contained in:
parent
dd5d1030b5
commit
111929593a
@ -400,6 +400,10 @@ pw_dialog_got_response (GtkDialog *dialog,
|
||||
else
|
||||
g_mount_operation_reply (op, G_MOUNT_OPERATION_ABORTED);
|
||||
|
||||
if (priv->user_widgets)
|
||||
g_list_free (priv->user_widgets);
|
||||
|
||||
priv->user_widgets = NULL;
|
||||
priv->dialog = NULL;
|
||||
g_object_notify (G_OBJECT (op), "is-showing");
|
||||
gtk_window_destroy (GTK_WINDOW (dialog));
|
||||
|
Loading…
Reference in New Issue
Block a user