summaryrefslogtreecommitdiffstats
path: root/cpukit/posix
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-12 19:55:09 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-12 19:55:09 +0000
commit5f08fd6179986138e724eb3bf1c495de090cab63 (patch)
tree72c5a0bbea6da2a39fcb9195a09b330fcb2e33cb /cpukit/posix
parentadded test cases for clock_gettime (invalid id), clock_settime (invalid_id), (diff)
downloadrtems-5f08fd6179986138e724eb3bf1c495de090cab63.tar.bz2
nanosleep: verify rqtp parameter is non-NULL.
nanosleep: return 0 time remaining for a yield case.
Diffstat (limited to 'cpukit/posix')
-rw-r--r--cpukit/posix/src/time.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpukit/posix/src/time.c b/cpukit/posix/src/time.c
index cc501f464b..5e202111dd 100644
--- a/cpukit/posix/src/time.c
+++ b/cpukit/posix/src/time.c
@@ -247,6 +247,9 @@ int nanosleep(
{
Watchdog_Interval ticks;
+ if ( !rqtp )
+ set_errno_and_return_minus_one( EINVAL );
+
/*
* Return EAGAIN if the delay interval is negative.
*
@@ -272,6 +275,10 @@ int nanosleep(
if ( !ticks ) {
_Thread_Yield_processor();
_Thread_Dispatch();
+ if ( rmtp ) {
+ rmtp->tv_sec = 0;
+ rmtp->tv_nsec = 0;
+ }
return 0;
}