diff options
author | Rich Felker <dalias@aerifal.cx> | 2020-02-12 17:23:29 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-02-12 17:34:17 -0500 |
commit | c9ebff4736128186121424364c1c62224b02aee3 (patch) | |
tree | b139c394ce0831b1e933ae51f89c0ab33582fb22 /src/time | |
parent | a662220df547e5c2446518e74440a7d834f9ebe6 (diff) | |
download | musl-c9ebff4736128186121424364c1c62224b02aee3.tar.gz musl-c9ebff4736128186121424364c1c62224b02aee3.tar.bz2 musl-c9ebff4736128186121424364c1c62224b02aee3.tar.xz musl-c9ebff4736128186121424364c1c62224b02aee3.zip |
fix remaining direct use of stat syscalls outside fstatat.c
because struct stat is no longer assumed to correspond to the
structure used by the stat-family syscalls, it's not valid to make any
of these syscalls directly using a buffer of type struct stat.
commit 9493892021eac4edf1776d945bcdd3f7a96f6978 moved all logic around
this change for stat-family functions into fstatat.c, making the
others wrappers for it. but a few other direct uses of the syscall
were overlooked. the ones in tmpnam/tempnam are harmless since the
syscalls are just used to test for file existence. however, the uses
in fchmodat and __map_file depend on getting accurate file properties,
and these functions may actually have been broken one or more mips
variants due to removal of conversion hacks from syscall_arch.h.
as a low-risk fix, simply use struct kstat in place of struct stat in
the affected places.
Diffstat (limited to 'src/time')
-rw-r--r-- | src/time/__map_file.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/time/__map_file.c b/src/time/__map_file.c index 9d376222..d3cefa82 100644 --- a/src/time/__map_file.c +++ b/src/time/__map_file.c @@ -2,10 +2,11 @@ #include <fcntl.h> #include <sys/stat.h> #include "syscall.h" +#include "kstat.h" const char unsigned *__map_file(const char *pathname, size_t *size) { - struct stat st; + struct kstat st; const unsigned char *map = MAP_FAILED; int fd = sys_open(pathname, O_RDONLY|O_CLOEXEC|O_NONBLOCK); if (fd < 0) return 0; |