All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] time: Fix overwrite err unexpected in clock_adjtime32
@ 2021-04-14  3:04 Chen Jun
  2021-04-14 14:51 ` Richard Cochran
  2021-04-17 12:57 ` [tip: timers/core] posix-timers: Preserve return value in clock_adjtime32() tip-bot2 for Chen Jun
  0 siblings, 2 replies; 3+ messages in thread
From: Chen Jun @ 2021-04-14  3:04 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, richardcochran, johnstul, rui.xiang

the correct error is covered by put_old_timex32.

Fixes: 3a4d44b61625 ("ntp: Move adjtimex related compat syscalls to native counterparts")
Signed-off-by: Chen Jun <chenjun102@huawei.com>
---

v2: Make "Fixes" tag correct

 kernel/time/posix-timers.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index bf540f5a..dd5697d 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -1191,8 +1191,8 @@ SYSCALL_DEFINE2(clock_adjtime32, clockid_t, which_clock,
 
 	err = do_clock_adjtime(which_clock, &ktx);
 
-	if (err >= 0)
-		err = put_old_timex32(utp, &ktx);
+	if (err >= 0 && put_old_timex32(utp, &ktx))
+		return -EFAULT;
 
 	return err;
 }
-- 
2.9.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] time: Fix overwrite err unexpected in clock_adjtime32
  2021-04-14  3:04 [PATCH v2] time: Fix overwrite err unexpected in clock_adjtime32 Chen Jun
@ 2021-04-14 14:51 ` Richard Cochran
  2021-04-17 12:57 ` [tip: timers/core] posix-timers: Preserve return value in clock_adjtime32() tip-bot2 for Chen Jun
  1 sibling, 0 replies; 3+ messages in thread
From: Richard Cochran @ 2021-04-14 14:51 UTC (permalink / raw)
  To: Chen Jun; +Cc: linux-kernel, tglx, rui.xiang, John Stultz

On Wed, Apr 14, 2021 at 03:04:49AM +0000, Chen Jun wrote:
> the correct error is covered by put_old_timex32.
> 
> Fixes: 3a4d44b61625 ("ntp: Move adjtimex related compat syscalls to native counterparts")
> Signed-off-by: Chen Jun <chenjun102@huawei.com>

Reviewed-by: Richard Cochran <richardcochran@gmail.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip: timers/core] posix-timers: Preserve return value in clock_adjtime32()
  2021-04-14  3:04 [PATCH v2] time: Fix overwrite err unexpected in clock_adjtime32 Chen Jun
  2021-04-14 14:51 ` Richard Cochran
@ 2021-04-17 12:57 ` tip-bot2 for Chen Jun
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot2 for Chen Jun @ 2021-04-17 12:57 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Chen Jun, Thomas Gleixner, Richard Cochran, stable, x86, linux-kernel

The following commit has been merged into the timers/core branch of tip:

Commit-ID:     2d036dfa5f10df9782f5278fc591d79d283c1fad
Gitweb:        https://git.kernel.org/tip/2d036dfa5f10df9782f5278fc591d79d283c1fad
Author:        Chen Jun <chenjun102@huawei.com>
AuthorDate:    Wed, 14 Apr 2021 03:04:49 
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Sat, 17 Apr 2021 14:55:06 +02:00

posix-timers: Preserve return value in clock_adjtime32()

The return value on success (>= 0) is overwritten by the return value of
put_old_timex32(). That works correct in the fault case, but is wrong for
the success case where put_old_timex32() returns 0.

Just check the return value of put_old_timex32() and return -EFAULT in case
it is not zero.

[ tglx: Massage changelog ]

Fixes: 3a4d44b61625 ("ntp: Move adjtimex related compat syscalls to native counterparts")
Signed-off-by: Chen Jun <chenjun102@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Richard Cochran <richardcochran@gmail.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20210414030449.90692-1-chenjun102@huawei.com
---
 kernel/time/posix-timers.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
index bf540f5..dd5697d 100644
--- a/kernel/time/posix-timers.c
+++ b/kernel/time/posix-timers.c
@@ -1191,8 +1191,8 @@ SYSCALL_DEFINE2(clock_adjtime32, clockid_t, which_clock,
 
 	err = do_clock_adjtime(which_clock, &ktx);
 
-	if (err >= 0)
-		err = put_old_timex32(utp, &ktx);
+	if (err >= 0 && put_old_timex32(utp, &ktx))
+		return -EFAULT;
 
 	return err;
 }

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-17 12:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-14  3:04 [PATCH v2] time: Fix overwrite err unexpected in clock_adjtime32 Chen Jun
2021-04-14 14:51 ` Richard Cochran
2021-04-17 12:57 ` [tip: timers/core] posix-timers: Preserve return value in clock_adjtime32() tip-bot2 for Chen Jun

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.