GTlsInteraction: Fix incorrect locking of mutex

* Fix incorrect locking of mutex in g_tls_interaction_invoke_ask_password()

https://bugzilla.gnome.org/show_bug.cgi?id=678758
This commit is contained in:
Stef Walter 2012-06-28 14:41:39 +02:00
parent 139c1ce988
commit 1ae3080640

View File

@ -321,6 +321,7 @@ g_tls_interaction_invoke_ask_password (GTlsInteraction *interaction,
GTlsInteractionResult result;
InvokeClosure *closure;
GTlsInteractionClass *klass;
gboolean complete;
g_return_val_if_fail (G_IS_TLS_INTERACTION (interaction), G_TLS_INTERACTION_UNHANDLED);
g_return_val_if_fail (G_IS_TLS_PASSWORD (password), G_TLS_INTERACTION_UNHANDLED);
@ -348,12 +349,16 @@ g_tls_interaction_invoke_ask_password (GTlsInteraction *interaction,
*/
if (g_main_context_acquire (interaction->priv->context))
{
while (!closure->complete)
for (;;)
{
g_mutex_unlock (&closure->mutex);
g_main_context_iteration (interaction->priv->context, TRUE);
g_mutex_lock (&closure->mutex);
complete = closure->complete;
g_mutex_unlock (&closure->mutex);
if (complete)
break;
g_main_context_iteration (interaction->priv->context, TRUE);
}
g_main_context_release (interaction->priv->context);
if (closure->error)