* [patch] time: cast ->raw_interval to u64 to avoid shift overflow
@ 2012-10-09 7:18 ` Dan Carpenter
0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2012-10-09 7:18 UTC (permalink / raw)
To: John Stultz; +Cc: Thomas Gleixner, linux-kernel, kernel-janitors
We fixed a bunch of integer overflows in timekeeping code during the 3.6
cycle. I did an audit based on that and found this potential overflow.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
I'm not super familiar with this code so please review my work
carefully.
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 5ce06a3..1d1ee67 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1113,7 +1113,7 @@ static cycle_t logarithmic_accumulation(struct timekeeper *tk, cycle_t offset,
accumulate_nsecs_to_secs(tk);
/* Accumulate raw time */
- raw_nsecs = tk->raw_interval << shift;
+ raw_nsecs = (u64)tk->raw_interval << shift;
raw_nsecs += tk->raw_time.tv_nsec;
if (raw_nsecs >= NSEC_PER_SEC) {
u64 raw_secs = raw_nsecs;
^ permalink raw reply related [flat|nested] 5+ messages in thread* [patch] time: cast ->raw_interval to u64 to avoid shift overflow
@ 2012-10-09 7:18 ` Dan Carpenter
0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2012-10-09 7:18 UTC (permalink / raw)
To: John Stultz; +Cc: Thomas Gleixner, linux-kernel, kernel-janitors
We fixed a bunch of integer overflows in timekeeping code during the 3.6
cycle. I did an audit based on that and found this potential overflow.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
I'm not super familiar with this code so please review my work
carefully.
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 5ce06a3..1d1ee67 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1113,7 +1113,7 @@ static cycle_t logarithmic_accumulation(struct timekeeper *tk, cycle_t offset,
accumulate_nsecs_to_secs(tk);
/* Accumulate raw time */
- raw_nsecs = tk->raw_interval << shift;
+ raw_nsecs = (u64)tk->raw_interval << shift;
raw_nsecs += tk->raw_time.tv_nsec;
if (raw_nsecs >= NSEC_PER_SEC) {
u64 raw_secs = raw_nsecs;
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [patch] time: cast ->raw_interval to u64 to avoid shift overflow
2012-10-09 7:18 ` Dan Carpenter
@ 2012-10-09 19:14 ` John Stultz
-1 siblings, 0 replies; 5+ messages in thread
From: John Stultz @ 2012-10-09 19:14 UTC (permalink / raw)
To: Dan Carpenter; +Cc: Thomas Gleixner, linux-kernel, kernel-janitors
On 10/09/2012 12:18 AM, Dan Carpenter wrote:
> We fixed a bunch of integer overflows in timekeeping code during the 3.6
> cycle. I did an audit based on that and found this potential overflow.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Yep. Looks like this would trigger if you had NOZ idle for more then 4
seconds.
Thanks for the audit, and sending this in!
Thomas: Mind queuing this? Probably should be marked for stable too.
Acked-by: John Stultz <johnstul@us.ibm.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [patch] time: cast ->raw_interval to u64 to avoid shift overflow
@ 2012-10-09 19:14 ` John Stultz
0 siblings, 0 replies; 5+ messages in thread
From: John Stultz @ 2012-10-09 19:14 UTC (permalink / raw)
To: Dan Carpenter; +Cc: Thomas Gleixner, linux-kernel, kernel-janitors
On 10/09/2012 12:18 AM, Dan Carpenter wrote:
> We fixed a bunch of integer overflows in timekeeping code during the 3.6
> cycle. I did an audit based on that and found this potential overflow.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Yep. Looks like this would trigger if you had NOZ idle for more then 4
seconds.
Thanks for the audit, and sending this in!
Thomas: Mind queuing this? Probably should be marked for stable too.
Acked-by: John Stultz <johnstul@us.ibm.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:timers/core] timekeeping: Cast raw_interval to u64 to avoid shift overflow
2012-10-09 7:18 ` Dan Carpenter
(?)
(?)
@ 2012-10-09 19:50 ` tip-bot for Dan Carpenter
-1 siblings, 0 replies; 5+ messages in thread
From: tip-bot for Dan Carpenter @ 2012-10-09 19:50 UTC (permalink / raw)
To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, johnstul, tglx, dan.carpenter
Commit-ID: 5b3900cd409466c0070b234d941650685ad0c791
Gitweb: http://git.kernel.org/tip/5b3900cd409466c0070b234d941650685ad0c791
Author: Dan Carpenter <dan.carpenter@oracle.com>
AuthorDate: Tue, 9 Oct 2012 10:18:23 +0300
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 9 Oct 2012 21:27:14 +0200
timekeeping: Cast raw_interval to u64 to avoid shift overflow
We fixed a bunch of integer overflows in timekeeping code during the 3.6
cycle. I did an audit based on that and found this potential overflow.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: John Stultz <johnstul@us.ibm.com>
Link: http://lkml.kernel.org/r/20121009071823.GA19159@elgon.mountain
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
---
kernel/time/timekeeping.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 16280ff..3eb3fc7c 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1045,7 +1045,7 @@ static cycle_t logarithmic_accumulation(struct timekeeper *tk, cycle_t offset,
accumulate_nsecs_to_secs(tk);
/* Accumulate raw time */
- raw_nsecs = tk->raw_interval << shift;
+ raw_nsecs = (u64)tk->raw_interval << shift;
raw_nsecs += tk->raw_time.tv_nsec;
if (raw_nsecs >= NSEC_PER_SEC) {
u64 raw_secs = raw_nsecs;
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-09 19:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-09 7:18 [patch] time: cast ->raw_interval to u64 to avoid shift overflow Dan Carpenter
2012-10-09 7:18 ` Dan Carpenter
2012-10-09 19:14 ` John Stultz
2012-10-09 19:14 ` John Stultz
2012-10-09 19:50 ` [tip:timers/core] timekeeping: Cast raw_interval " tip-bot for Dan Carpenter
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.