diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index 977bb6b78b0ccc643686f6e36efc6618c9f88e60..b0bda93c595d85897c48b702dd7ffaa997ff8f67 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -1174,8 +1174,8 @@ COMPAT_SYSCALL_DEFINE2(clock_adjtime, clockid_t, which_clock,
 
 	err = kc->clock_adj(which_clock, &ktx);
 
-	if (err >= 0)
-		err = compat_put_timex(utp, &ktx);
+	if (err >= 0 && compat_put_timex(utp, &ktx))
+		return -EFAULT;
 
 	return err;
 }