From 7f54f7819998f63f9214fb21ff3867ff4f780a32 Mon Sep 17 00:00:00 2001 From: Daniel Williams Date: Sep 24 2008 09:39:41 +0000 Subject: - Fix hang when reading system connections from ifcfg files --- diff --git a/NetworkManager.spec b/NetworkManager.spec index 5549314..55364dc 100644 --- a/NetworkManager.spec +++ b/NetworkManager.spec @@ -16,7 +16,7 @@ Name: NetworkManager Summary: Network connection manager and user applications Epoch: 1 Version: 0.7.0 -Release: 0.11.%{snapshot}.1%{?dist} +Release: 0.11.%{snapshot}.2%{?dist} Group: System Environment/Base License: GPLv2+ URL: http://www.gnome.org/projects/NetworkManager/ @@ -29,6 +29,7 @@ Patch3: old-dbus-glib.patch Patch4: serial-debug.patch Patch5: explain-dns1-dns2.patch Patch6: wpa-adhoc-fix.patch +Patch7: crypto-init.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) PreReq: chkconfig @@ -155,6 +156,7 @@ tar -xzf %{SOURCE1} %patch4 -p1 -b .serial-debug %patch5 -p1 -b .explain-dns1-dns2 %patch6 -p1 -b .wpa-adhoc-fix +%patch7 -p1 -b .crypto-init %build autoreconf -i @@ -309,6 +311,9 @@ fi %{_datadir}/gtk-doc/html/libnm-glib/ %changelog +* Thu Sep 11 2008 Dan Williams - 1:0.7.0-0.11.svn4022.2 +- Fix hang when reading system connections from ifcfg files + * Thu Sep 4 2008 Dan Williams - 1:0.7.0-0.11.svn4022.1 - Fix WPA Ad-Hoc connections diff --git a/crypto-init.patch b/crypto-init.patch new file mode 100644 index 0000000..a8775d4 --- /dev/null +++ b/crypto-init.patch @@ -0,0 +1,61 @@ +diff -up NetworkManager-0.7.0/libnm-util/crypto_nss.c.crypto-init NetworkManager-0.7.0/libnm-util/crypto_nss.c +--- NetworkManager-0.7.0/libnm-util/crypto_nss.c.crypto-init 2008-08-22 12:14:12.000000000 -0400 ++++ NetworkManager-0.7.0/libnm-util/crypto_nss.c 2008-09-11 16:22:29.000000000 -0400 +@@ -29,27 +29,39 @@ + #include + #include + #include ++#include + + #include "crypto.h" + +-static guint32 refcount = 0; ++static gboolean initialized = FALSE; + + gboolean + crypto_init (GError **error) + { +- if (refcount == 0) { +- PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 1); +- NSS_NoDB_Init (NULL); ++ SECStatus ret; ++ ++ if (initialized) ++ return TRUE; ++ ++ PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 1); ++ ret = NSS_NoDB_Init (NULL); ++ if (ret != SECSuccess) { ++ PR_Cleanup (); ++ g_set_error (error, NM_CRYPTO_ERROR, ++ 0, ++ _("Failed to initialize the crypto engine: %d."), ++ PR_GetError ()); ++ return FALSE; + } +- refcount++; ++ ++ initialized = TRUE; + return TRUE; + } + + void + crypto_deinit (void) + { +- refcount--; +- if (refcount == 0) { ++ if (initialized) { + NSS_Shutdown (); + PR_Cleanup (); + } +diff -up NetworkManager-0.7.0/libnm-util/nm-utils.c.crypto-init NetworkManager-0.7.0/libnm-util/nm-utils.c +--- NetworkManager-0.7.0/libnm-util/nm-utils.c.crypto-init 2008-08-22 12:14:12.000000000 -0400 ++++ NetworkManager-0.7.0/libnm-util/nm-utils.c 2008-09-11 16:19:25.000000000 -0400 +@@ -1152,7 +1152,6 @@ nm_utils_uuid_generate_from_string (cons + + out: + g_free (uuid); +- crypto_deinit (); + return buf; + } +