diff options
author | Miroslav Lichvar <mlichvar@redhat.com> | 2013-01-11 05:58:58 -0500 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2013-01-15 21:16:07 -0500 |
commit | f0dbe81f0e7c39783ad25d9084bbcda131508993 (patch) | |
tree | c88ba1416dfb90fce3ed0a72c4bf5bfb42831988 | |
parent | 2353b47bffe4e6ab39042f470c55d41bb3ff3846 (diff) |
posix-timers: Fix clock_adjtime to always return timex data on success
The clock_adj call returns the clock state on success, which may be a
non-zero value (e.g. TIME_INS), but the modified timex data is copied
back to the user only when zero value (TIME_OK) was returned. Fix the
condition to copy the data also with positive return values.
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
-rw-r--r-- | kernel/posix-timers.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index 69185ae6b701..10349d5f2ec3 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c | |||
@@ -997,7 +997,7 @@ SYSCALL_DEFINE2(clock_adjtime, const clockid_t, which_clock, | |||
997 | 997 | ||
998 | err = kc->clock_adj(which_clock, &ktx); | 998 | err = kc->clock_adj(which_clock, &ktx); |
999 | 999 | ||
1000 | if (!err && copy_to_user(utx, &ktx, sizeof(ktx))) | 1000 | if (err >= 0 && copy_to_user(utx, &ktx, sizeof(ktx))) |
1001 | return -EFAULT; | 1001 | return -EFAULT; |
1002 | 1002 | ||
1003 | return err; | 1003 | return err; |