diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/clock_settime.c | 7 |
2 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2000-04-10 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/clock_settime.c (clock_settime): Test tv_nsec value + for correct range. From code by Kaz Kylheku <kaz@ashi.footprints.net>. + 2000-04-09 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/clock_gettime.c: New file. diff --git a/sysdeps/unix/clock_settime.c b/sysdeps/unix/clock_settime.c index daee2e2c93..36bd98fdf9 100644 --- a/sysdeps/unix/clock_settime.c +++ b/sysdeps/unix/clock_settime.c @@ -31,6 +31,13 @@ clock_settime (clockid_t clock_id, const struct timespec *tp) struct timeval tv; int retval; + /* Make sure the time cvalue is OK. */ + if (tp->tv_nsec < 0 || tp->tv_nsec >= 1000000000) + { + __set_errno (EINVAL); + return -1; + } + switch (clock_id) { case CLOCK_REALTIME: |