[Pkg-gnupg-commit] [libassuan] 03/10: Protect connect system hook against blocking (nPth).

Eric Dorland eric at moszumanska.debian.org
Fri Dec 4 19:05:08 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit 18ca1593c62d62bb72b4e7e14347cd221c187138
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Nov 26 18:16:13 2015 +0100

    Protect connect system hook against blocking (nPth).
    
    * src/assuan.h.in (ASSUAN_SYSTEM_NPTH_IMPL): Add wrapper for connect.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 NEWS            | 3 +++
 src/assuan.h.in | 7 ++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 786297b..7168207 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
 Noteworthy changes in version 2.4.2 (unreleased) [C7/A7/R_]
 ------------------------------------------------
 
+ * The nPth version of the connect system hook does now wrap the call
+   with npth_unprotec/npth_protect to avoid blocking during a connect.
+
 
 Noteworthy changes in version 2.4.1 (2015-11-23) [C7/A7/R1]
 ------------------------------------------------
diff --git a/src/assuan.h.in b/src/assuan.h.in
index 67a1c20..da1af25 100644
--- a/src/assuan.h.in
+++ b/src/assuan.h.in
@@ -571,13 +571,18 @@ extern struct assuan_system_hooks _assuan_system_pth;
   { pid_t res; (void) ctx; npth_unprotect();				\
     res = __assuan_waitpid (ctx, pid, nowait, status, options);		\
     npth_protect(); return res; }					\
+  static int _assuan_npth_connect (assuan_context_t ctx, int sock,      \
+                                   struct sockaddr *addr, socklen_t len)\
+  { int res; npth_unprotect();                                          \
+    res = __assuan_connect (ctx, sock, addr, len);                      \
+    npth_protect(); return res; }                                       \
 									\
   struct assuan_system_hooks _assuan_system_npth =			\
     { ASSUAN_SYSTEM_HOOKS_VERSION, _assuan_npth_usleep, __assuan_pipe,	\
       __assuan_close, _assuan_npth_read, _assuan_npth_write,		\
       _assuan_npth_recvmsg, _assuan_npth_sendmsg,			\
       __assuan_spawn, _assuan_npth_waitpid, __assuan_socketpair,	\
-      __assuan_socket, __assuan_connect }
+      __assuan_socket, _assuan_npth_connect }
 
 extern struct assuan_system_hooks _assuan_system_npth;
 #define ASSUAN_SYSTEM_NPTH &_assuan_system_npth

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list