From 2969a8567ffd1e0fd1096199ec32b78beaf779fc Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 7 Mar 2011 17:40:12 +0000 Subject: [PATCH] [console] Avoid timer wraparound problems in getchar_timeout() Signed-off-by: Michael Brown --- src/core/getkey.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/getkey.c b/src/core/getkey.c index d93ba1e6..5710f190 100644 --- a/src/core/getkey.c +++ b/src/core/getkey.c @@ -39,9 +39,9 @@ FILE_LICENCE ( GPL2_OR_LATER ); * @ret character Character read from console */ int getchar_timeout ( unsigned long timeout ) { - unsigned long expiry = ( currticks() + timeout ); + unsigned long start = currticks(); - while ( currticks() < expiry ) { + while ( ( currticks() - start ) < timeout ) { step(); if ( iskey() ) return getchar();