summaryrefslogtreecommitdiff
path: root/arch/um/drivers/cow.h
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-11-05 11:39:51 +0300
committerArnd Bergmann <arnd@arndb.de>2019-12-18 20:07:31 +0300
commit853bc0ab341b0c99619f83f4060dedcccad77b2a (patch)
treece5ecd2529f48e2b4544b88bf06bc09debd0c4db /arch/um/drivers/cow.h
parent37e86e0fd0403f51d6dd49abd1469361714f6ca4 (diff)
downloadlinux-853bc0ab341b0c99619f83f4060dedcccad77b2a.tar.xz
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/drivers/cow.h')
-rw-r--r--arch/um/drivers/cow.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/um/drivers/cow.h b/arch/um/drivers/cow.h
index 760c507dd5b6..103adac691ed 100644
--- a/arch/um/drivers/cow.h
+++ b/arch/um/drivers/cow.h
@@ -11,7 +11,7 @@ extern int init_cow_file(int fd, char *cow_file, char *backing_file,
extern int file_reader(__u64 offset, char *buf, int len, void *arg);
extern int read_cow_header(int (*reader)(__u64, char *, int, void *),
void *arg, __u32 *version_out,
- char **backing_file_out, time_t *mtime_out,
+ char **backing_file_out, long long *mtime_out,
unsigned long long *size_out, int *sectorsize_out,
__u32 *align_out, int *bitmap_offset_out);