[netatalk/f17] fixes: #835714 - Netatalk 2.2.2-1: Unable to unmount afpd share

Lukáš Nykrýn lnykryn at fedoraproject.org
Wed Jul 18 08:16:10 UTC 2012


commit 1addc2295fd3e8dc9ca0a6068bd817f22aa16b46
Author: Lukas Nykryn <lnykryn at redhat.com>
Date:   Mon Jul 16 13:21:23 2012 +0200

    fixes: #835714 - Netatalk 2.2.2-1: Unable to unmount afpd share

 netatalk-2.2.3-sigterm.patch |   71 ++++++++++++++++++++++++++++++++++++++++++
 netatalk.spec                |    8 ++++-
 2 files changed, 78 insertions(+), 1 deletions(-)
---
diff --git a/netatalk-2.2.3-sigterm.patch b/netatalk-2.2.3-sigterm.patch
new file mode 100644
index 0000000..169a0d6
--- /dev/null
+++ b/netatalk-2.2.3-sigterm.patch
@@ -0,0 +1,71 @@
+From 25e03ec9edd863136008881a4a57ea9a788d34b3 Mon Sep 17 00:00:00 2001
+From: Frank Lahm <franklahm at googlemail.com>
+Date: Mon, 18 Jun 2012 16:26:28 +0200
+Subject: [PATCH] Block SIGTERM when calling pam_close_session
+
+---
+ etc/afpd/afp_dsi.c |   11 +++++++++--
+ 1 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/etc/afpd/afp_dsi.c b/etc/afpd/afp_dsi.c
+index bf454e1..6c6bc7d 100644
+--- a/etc/afpd/afp_dsi.c
++++ b/etc/afpd/afp_dsi.c
+@@ -80,7 +80,8 @@ static sigjmp_buf recon_jmp;
+ static void afp_dsi_close(AFPObj *obj)
+ {
+     DSI *dsi = obj->handle;
+-
++    sigset_t sigs;
++    
+     close(obj->ipc_fd);
+     obj->ipc_fd = -1;
+ 
+@@ -97,8 +98,14 @@ static void afp_dsi_close(AFPObj *obj)
+     }
+ 
+     close_all_vol();
+-    if (obj->logout)
++
++    if (obj->logout) {
++        /* Block SIGTERM, PAM might send us a SIGTERM in (*obj->logout)() -> pam_close_session() */
++        pthread_sigmask(SIG_BLOCK, &sigs, NULL);
++        sigemptyset(&sigs);
++        sigaddset(&sigs, SIGTERM);
+         (*obj->logout)();
++    }
+ 
+     LOG(log_note, logtype_afpd, "AFP statistics: %.2f KB read, %.2f KB written",
+         dsi->read_count/1024.0, dsi->write_count/1024.0);
+-- 
+1.7.4.1
+
+From d8f375c4fbff7a27768ce6efebec64ab193734ee Mon Sep 17 00:00:00 2001
+From: Frank Lahm <franklahm at googlemail.com>
+Date: Wed, 20 Jun 2012 15:33:26 +0200
+Subject: [PATCH] Fix signal blocking, pthread_sigmask was called before mask initialisation. Also block all sigs instead of only SIGTERM (think I saw SIGHUP somewhere).
+
+---
+ etc/afpd/afp_dsi.c |    5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/etc/afpd/afp_dsi.c b/etc/afpd/afp_dsi.c
+index 6c6bc7d..7779b23 100644
+--- a/etc/afpd/afp_dsi.c
++++ b/etc/afpd/afp_dsi.c
+@@ -100,10 +100,9 @@ static void afp_dsi_close(AFPObj *obj)
+     close_all_vol();
+ 
+     if (obj->logout) {
+-        /* Block SIGTERM, PAM might send us a SIGTERM in (*obj->logout)() -> pam_close_session() */
++        /* Block sigs, PAM/systemd/whoever might send us a SIG??? in (*obj->logout)() -> pam_close_session() */
++        sigfillset(&sigs);
+         pthread_sigmask(SIG_BLOCK, &sigs, NULL);
+-        sigemptyset(&sigs);
+-        sigaddset(&sigs, SIGTERM);
+         (*obj->logout)();
+     }
+ 
+-- 
+1.7.4.1
+
diff --git a/netatalk.spec b/netatalk.spec
index 01f698b..a219060 100644
--- a/netatalk.spec
+++ b/netatalk.spec
@@ -1,7 +1,7 @@
 Summary: Daemon which provides POSIX-compliant *NIX/*BSD systems with the ability to share files and printers with Apple Macintosh
 Name:    netatalk
 Version: 2.2.2
-Release: 2%{?dist}
+Release: 3%{?dist}
 Epoch:   4
 License: GPLv2+
 Group:   System Environment/Daemons
@@ -10,6 +10,7 @@ Source2: netatalk.pam-system-auth
 
 Patch1:  netatalk-2.0.2-uams_no_pie.patch
 Patch2:  netatalk-2.0.4-extern_ucreator.patch
+Patch3:  netatalk-2.2.3-sigterm.patch
 
 Url:	 http://netatalk.sourceforge.net/
 Requires: pam
@@ -41,6 +42,7 @@ programs.
 
 %patch1  -p1 -b .uams_no_pie
 %patch2  -p1 -b .extern_ucreator
+%patch3  -p1 -b .sigterm
 
 ln -s ./NEWS ChangeLog
 
@@ -163,6 +165,10 @@ fi
 %{_mandir}/man*/netatalk-config.1*
 
 %changelog
+* Mon Jul 16 2012 Lukáš Nykrýn <lnykryn at redhat.com> - 4:2.2.2-3
+- fixes: #835714 - Netatalk 2.2.2-1: Unable to unmount afpd share from OSX
+  client, crashes Finder netatalk-2.2.2-1
+
 * Tue Jun 12 2012 Lukáš Nykrýn <lnykryn at redhat.com> - 4:2.2.2-2
 - fixes: #831001 - netatalk pam configuration has invalid entry
 


More information about the scm-commits mailing list