Hello community, here is the log from the commit of package strongswan for openSUSE:Factory checked in at Fri Sep 4 02:27:14 CEST 2009. -------- --- strongswan/strongswan.changes 2009-08-31 16:23:45.000000000 +0200 +++ strongswan/strongswan.changes 2009-09-04 00:45:14.000000000 +0200 @@ -1,0 +2,5 @@ +Thu Sep 3 23:44:37 CEST 2009 - mt@suse.de + +- Applied patch fixing locking in ipsec.secrets inclusion. + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- strongswan-4.3.4-load_secrets-lock-fix.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ strongswan.spec ++++++ --- /var/tmp/diff_new_pack.GVQ1sJ/_old 2009-09-04 02:25:36.000000000 +0200 +++ /var/tmp/diff_new_pack.GVQ1sJ/_new 2009-09-04 02:25:36.000000000 +0200 @@ -22,7 +22,7 @@ %define upstream_version 4.3.4 %define strongswan_docdir %{_docdir}/%{name} Version: 4.3.4 -Release: 1 +Release: 2 License: GPL v2 or later Group: Productivity/Networking/Security Summary: StrongSwan -- OpenSource IPsec-based VPN Solution @@ -38,6 +38,7 @@ Source2: %{name}.init.in Source3: %{name}-%{version}-rpmlintrc Patch1: %{name}_modprobe_syslog.patch +Patch2: %{name}-4.3.4-load_secrets-lock-fix.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: bison flex gmp-devel gperf pkg-config BuildRequires: libcap-devel @@ -129,6 +130,7 @@ %prep %setup -q -n %{name}-%{upstream_version} %patch1 -p0 +%patch2 -p1 sed -e 's|@libexecdir@|%_libexecdir|g' \ < $RPM_SOURCE_DIR/strongswan.init.in \ > strongswan.init ++++++ strongswan-4.3.4-load_secrets-lock-fix.diff ++++++ From: Marius Tomaschewski <mt@suse.de> Date: Wed, 2 Sep 2009 13:49:39 +0200 Subject: [PATCH] Fixed load_secrets to acquire/release lock in level 0 only The write_lock call fails with EDEADLK and unlocks in the next recursion level. diff --git a/src/charon/plugins/stroke/stroke_cred.c b/src/charon/plugins/stroke/stroke_cred.c index 31bcfe9f486f4dac0ae30bc5846ed3d818526dbb..68df7f0b6d709c396d7a572ca4d0198ef12b2446 100644 --- a/src/charon/plugins/stroke/stroke_cred.c +++ b/src/charon/plugins/stroke/stroke_cred.c @@ -722,9 +722,10 @@ static void load_secrets(private_stroke_cred_t *this, char *file, int level) fclose(fd); src = chunk; - this->lock->write_lock(this->lock); if (level == 0) { + this->lock->write_lock(this->lock); + /* flush secrets on non-recursive invocation */ while (this->shared->remove_last(this->shared, (void**)&shared) == SUCCESS) @@ -1019,7 +1020,10 @@ static void load_secrets(private_stroke_cred_t *this, char *file, int level) } } error: - this->lock->unlock(this->lock); + if (level == 0) + { + this->lock->unlock(this->lock); + } chunk_clear(&chunk); } -- 1.6.0.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org