Mailinglist Archive: opensuse-commit (794 mails)
| < Previous | Next > |
commit strongswan for openSUSE:Factory
- From: root@xxxxxxxxxxxxxxx (h_root)
- Date: Fri, 04 Sep 2009 02:27:14 +0200
- Message-id: <20090904002714.9F89E6487@xxxxxxxxxxxxxxx>
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@xxxxxxx
+
+- 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@xxxxxxx>
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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx
| < Previous | Next > |