summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2012-06-28 21:51:29 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2012-06-28 21:51:29 +0800
commit04c1c479bc38ccdf00aed37ac5754e8fe29f0c41 (patch)
tree4bdf75049d0599b0dd6297df18ee3b3674fef727
parent3af458ef65af7abadf4b9455565811afee064234 (diff)
downloadmarcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar.gz
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar.bz2
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar.lz
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar.xz
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.tar.zst
marcuscom-ports-04c1c479bc38ccdf00aed37ac5754e8fe29f0c41.zip
Incorporate a patch from upstream to fix a mutex lock order reversal.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@16970 df743ca5-7f9a-e211-a948-0013205c9059
-rw-r--r--devel/glib20/Makefile4
-rw-r--r--devel/glib20/files/patch-gio_gtlsinteraction.c45
2 files changed, 47 insertions, 2 deletions
diff --git a/devel/glib20/Makefile b/devel/glib20/Makefile
index 4b95f66cd..4fd291dd2 100644
--- a/devel/glib20/Makefile
+++ b/devel/glib20/Makefile
@@ -3,13 +3,13 @@
# Whom: Vanilla I. Shu <vanilla@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports/devel/glib20/Makefile,v 1.222 2012/05/16 08:35:55 kwm Exp $
+# $MCom: ports/devel/glib20/Makefile,v 1.223 2012/05/27 15:16:28 kwm Exp $
#
# !! DON'T FORGET ABOUT devel/gio-fam-backend !!
PORTNAME= glib
PORTVERSION= 2.32.3
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES= devel
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2
diff --git a/devel/glib20/files/patch-gio_gtlsinteraction.c b/devel/glib20/files/patch-gio_gtlsinteraction.c
new file mode 100644
index 000000000..5f1bb18d3
--- /dev/null
+++ b/devel/glib20/files/patch-gio_gtlsinteraction.c
@@ -0,0 +1,45 @@
+From 1ae30806403e556c8297a16a25a18687d9e80f89 Mon Sep 17 00:00:00 2001
+From: Stef Walter <stefw@gnome.org>
+Date: Thu, 28 Jun 2012 14:41:39 +0200
+Subject: [PATCH] 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
+---
+ gio/gtlsinteraction.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/gio/gtlsinteraction.c b/gio/gtlsinteraction.c
+index 41574b7..e921b81 100644
+--- gio/gtlsinteraction.c
++++ gio/gtlsinteraction.c
+@@ -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_lock (&closure->mutex);
++ complete = closure->complete;
+ g_mutex_unlock (&closure->mutex);
++ if (complete)
++ break;
+ g_main_context_iteration (interaction->priv->context, TRUE);
+- g_mutex_lock (&closure->mutex);
+ }
++
+ g_main_context_release (interaction->priv->context);
+
+ if (closure->error)
+--
+1.7.10.2