瀏覽代碼

[PATCH] fix 32bit overflow in timespec_to_sample()

fix 32bit overflow in timespec_to_sample()

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Oleg Nesterov 19 年之前
父節點
當前提交
ee500f2749
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      kernel/posix-cpu-timers.c

+ 1 - 1
kernel/posix-cpu-timers.c

@@ -36,7 +36,7 @@ timespec_to_sample(clockid_t which_clock, const struct timespec *tp)
 	union cpu_time_count ret;
 	union cpu_time_count ret;
 	ret.sched = 0;		/* high half always zero when .cpu used */
 	ret.sched = 0;		/* high half always zero when .cpu used */
 	if (CPUCLOCK_WHICH(which_clock) == CPUCLOCK_SCHED) {
 	if (CPUCLOCK_WHICH(which_clock) == CPUCLOCK_SCHED) {
-		ret.sched = tp->tv_sec * NSEC_PER_SEC + tp->tv_nsec;
+		ret.sched = (unsigned long long)tp->tv_sec * NSEC_PER_SEC + tp->tv_nsec;
 	} else {
 	} else {
 		ret.cpu = timespec_to_cputime(tp);
 		ret.cpu = timespec_to_cputime(tp);
 	}
 	}