https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=06797545b3270f8cfafe1d8314970dc705f29d39
commit 06797545b3270f8cfafe1d8314970dc705f29d39 Author: Sergejs Lukanihins <[email protected]> Date: Fri May 25 17:27:21 2018 +0100 Cygwin: Fixing the math behind rounding down ch.stacklimit to page size. Diff: --- winsup/cygwin/fork.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index bcbef12..c6fef67 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -316,7 +316,7 @@ frok::parent (volatile char * volatile stack_here) on whether we're running on a pthread or not. If pthread, we fetch the guardpage size from the pthread attribs, otherwise we use the system default. */ - ch.stacklimit = (void *) ((uintptr_t) stack_here & ~wincap.page_size ()); + ch.stacklimit = (void *) ((uintptr_t) stack_here & ~(wincap.page_size () - 1)); ch.guardsize = (&_my_tls != _main_tls && _my_tls.tid) ? _my_tls.tid->attr.guardsize : wincap.def_guard_page_size ();
