diff options
Diffstat (limited to 'libpager')
-rw-r--r-- | libpager/pager-memcpy.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libpager/pager-memcpy.c b/libpager/pager-memcpy.c index caaf6f2a..2ef42a77 100644 --- a/libpager/pager-memcpy.c +++ b/libpager/pager-memcpy.c @@ -208,9 +208,14 @@ pager_memcpy (struct pager *pager, memory_object_t memobj, window_size = 0; if (sigsetjmp (buf, 1) == 0) - hurd_catch_signal (sigmask (SIGSEGV) | sigmask (SIGBUS), - window, window + window_size, - &do_copy, (sighandler_t) &fault); + { + sigset_t mask; + sigemptyset (&mask); + sigaddset (&mask, SIGSEGV); + sigaddset (&mask, SIGBUS); + hurd_catch_signal (mask, window, window + window_size, + &do_copy, (sighandler_t) &fault); + } if (! err) assert_backtrace (n == 0); |