From 772e3426a7b6f5200cb1029d41308b8b666cdbab Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 28 Jan 2003 09:08:07 +0000 Subject: Update. 2003-01-28 Ulrich Drepper * sysdeps/unix/common/pause.c (do_pause): New function. Split from __libc_pause. Implement using sigsuspend. (__libc_pause): Call do_pause to do the real work. * sysdeps/posix/sigpause.c (do_sigpause): Check range of sig_or_mask parameter is is_sig != 0. --- sysdeps/posix/sigpause.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sysdeps/posix') diff --git a/sysdeps/posix/sigpause.c b/sysdeps/posix/sigpause.c index e85a813ab0..bf2ca6588d 100644 --- a/sysdeps/posix/sigpause.c +++ b/sysdeps/posix/sigpause.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,94-98,2000,02 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,94-98,2000,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,7 +34,8 @@ do_sigpause (int sig_or_mask, int is_sig) { /* The modern X/Open implementation is requested. */ if (__sigprocmask (0, NULL, &set) < 0 - /* Yes, we call `sigdelset' and not `__sigdelset'. */ + /* Perform the tests from sigdelset ourselves. */ + || sig_or_mask <= 0 || sig_or_mask >= NSIG || __sigdelset (&set, sig_or_mask) < 0) return -1; } -- cgit 1.4.1