Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2015-02-23 15:40:01 +0300
committerCorinna Vinschen <corinna@vinschen.de>2015-02-23 15:40:01 +0300
commitf6ec73c0185087197e08fcaf6c58fd1e1b422da4 (patch)
tree56ec022f082291d69c61d090277cb39fce25aa53
parentd6f62a117812f074bff9cbe11099b9f6406ab08a (diff)
* winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/release/1.7.353
-rw-r--r--winsup/cygwin/winsup.h2
3 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 494991140..bf78e2a98 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow.
+
2015-02-20 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (internal_getgroups): Take additional timeout_ns parameter.
diff --git a/winsup/cygwin/release/1.7.35 b/winsup/cygwin/release/1.7.35
index 8c8c9962d..564698907 100644
--- a/winsup/cygwin/release/1.7.35
+++ b/winsup/cygwin/release/1.7.35
@@ -35,3 +35,6 @@ Bug Fixes
- 64 bit: Export forgotten symbol __mempcpy.
Addresses: https://cygwin.com/ml/cygwin/2015-02/msg00394.html
+
+- 64 bit: Avoid misbehaviour in signal mask computation.
+ Addresses: https://cygwin.com/ml/cygwin/2015-02/msg00665.html
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index d61f6950f..4b549dde9 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -131,7 +131,7 @@ extern int cygserver_running;
})
/* Convert a signal to a signal mask */
-#define SIGTOMASK(sig) (1 << ((sig) - 1))
+#define SIGTOMASK(sig) ((sigset_t) 1 << ((sig) - 1))
#define set_api_fatal_return(n) do {extern int __api_fatal_exit_val; __api_fatal_exit_val = (n);} while (0)