Don't get fooled by leave_npth changing ERRNO.
authorWerner Koch <wk@gnupg.org>
Thu, 18 Dec 2014 15:54:51 +0000 (16:54 +0100)
committerWerner Koch <wk@gnupg.org>
Thu, 18 Dec 2014 15:55:47 +0000 (16:55 +0100)
* src/npth.c: Save ERRNO.
--
GnuPG-bug-id: 1773

Note that there is no need to do that in enter_pth because the specs
for sem_post don't identify EINTR as a possible return value.

NEWS
src/npth.c

diff --git a/NEWS b/NEWS
index 217e304..1f79818 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
 Noteworthy changes in version 1.2 (unreleased)
 ----------------------------------------------
 
+ * Fix possible clobbering of ERRNO.
+
 
 Noteworthy changes in version 1.1 (2014-10-31)
 ----------------------------------------------
index 2fc6ba3..7de6c9d 100644 (file)
@@ -128,12 +128,14 @@ static void
 leave_npth (void)
 {
   int res;
+  int save_errno = errno;
 
   do {
     res = sem_wait (sceptre);
   } while (res < 0 && errno == EINTR);
 
   assert (!res);
+  errno = save_errno;
 }
 
 #define ENTER() enter_npth ()