mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
tomoyo: fix timestamping for y2038
Tomoyo uses an open-coded version of time_to_tm() to create a timestamp from the current time as read by get_seconds(). This will overflow and give wrong results on 32-bit systems in 2038. To correct this, this changes the code to use ktime_get_real_seconds() and the generic time64_to_tm() function that are both y2038-safe. Using the library function avoids adding an expensive 64-bit division in this code and can benefit from any optimizations we do in common code. Acked-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: James Morris <james.l.morris@oracle.com>
This commit is contained in:
committed by
James Morris
parent
dbbbe1105e
commit
927340926e
@@ -2256,7 +2256,7 @@ static const char * const tomoyo_memory_headers[TOMOYO_MAX_MEMORY_STAT] = {
|
||||
/* Timestamp counter for last updated. */
|
||||
static unsigned int tomoyo_stat_updated[TOMOYO_MAX_POLICY_STAT];
|
||||
/* Counter for number of updates. */
|
||||
static unsigned int tomoyo_stat_modified[TOMOYO_MAX_POLICY_STAT];
|
||||
static time64_t tomoyo_stat_modified[TOMOYO_MAX_POLICY_STAT];
|
||||
|
||||
/**
|
||||
* tomoyo_update_stat - Update statistic counters.
|
||||
@@ -2271,7 +2271,7 @@ void tomoyo_update_stat(const u8 index)
|
||||
* I don't use atomic operations because race condition is not fatal.
|
||||
*/
|
||||
tomoyo_stat_updated[index]++;
|
||||
tomoyo_stat_modified[index] = get_seconds();
|
||||
tomoyo_stat_modified[index] = ktime_get_real_seconds();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user