diff --git a/ChangeLog b/ChangeLog index f388f791c1..004dfe04b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-04-10 Ulrich Drepper + + * sysdeps/unix/clock_settime.c (clock_settime): Test tv_nsec value + for correct range. From code by Kaz Kylheku . + 2000-04-09 Ulrich Drepper * 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: