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
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));