forked from Imagelibrary/rtems
cpukit/posix: signal() should return SIG_ERR on error
When signum is invalid, return SIG_ERR, and set errno to indicate the cause.
This commit is contained in:
@@ -74,6 +74,8 @@ sighandler_t signal(
|
|||||||
s.sa_flags = 0;
|
s.sa_flags = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
sigaction( signum, &s, &old );
|
if ( sigaction( signum, &s, &old ) < 0 )
|
||||||
|
return (SIG_ERR);
|
||||||
|
|
||||||
return (sighandler_t) old.sa_handler;
|
return (sighandler_t) old.sa_handler;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,6 +139,11 @@ void *POSIX_Init(
|
|||||||
|
|
||||||
TEST_BEGIN();
|
TEST_BEGIN();
|
||||||
|
|
||||||
|
/* invalid signum return SIG_ERR */
|
||||||
|
sighandler_t old_handler = signal( 0, SIG_DFL );
|
||||||
|
rtems_test_assert( old_handler == SIG_ERR );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
block_all_signals();
|
block_all_signals();
|
||||||
|
|
||||||
/* set the time of day, and print our buffer in multiple ways */
|
/* set the time of day, and print our buffer in multiple ways */
|
||||||
|
|||||||
Reference in New Issue
Block a user