diff options
author | Arnd Bergmann <arnd@arndb.de> | 2019-11-05 09:39:51 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2019-12-18 18:07:31 +0100 |
commit | 853bc0ab341b0c99619f83f4060dedcccad77b2a (patch) | |
tree | ce5ecd2529f48e2b4544b88bf06bc09debd0c4db /arch/um/include | |
parent | 37e86e0fd0403f51d6dd49abd1469361714f6ca4 (diff) |
um: ubd: use 64-bit time_t where possible
The ubd code suffers from a possible y2038 overflow on 32-bit
architectures, both for the cow header and the os_file_modtime()
function.
Replace time_t with time64_t to extend the ubd_kern side as much
as possible.
Whether this makes a difference for the user side depends on
the host libc implementation that may use either 32-bit or 64-bit
time_t.
For the cow file format, the header contains an unsigned 32-bit
timestamp, which is good until y2106, passing this through a
'long long' gives us a consistent interpretation between 32-bit
and 64-bit um kernels.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/um/include')
-rw-r--r-- | arch/um/include/shared/os.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h index 506bcd1bca68..0f30204b6afa 100644 --- a/arch/um/include/shared/os.h +++ b/arch/um/include/shared/os.h @@ -150,7 +150,7 @@ extern int os_sync_file(int fd); extern int os_file_size(const char *file, unsigned long long *size_out); extern int os_pread_file(int fd, void *buf, int len, unsigned long long offset); extern int os_pwrite_file(int fd, const void *buf, int count, unsigned long long offset); -extern int os_file_modtime(const char *file, unsigned long *modtime); +extern int os_file_modtime(const char *file, long long *modtime); extern int os_pipe(int *fd, int stream, int close_on_exec); extern int os_set_fd_async(int fd); extern int os_clear_fd_async(int fd); |