diff options
author | Rich Felker <dalias@aerifal.cx> | 2014-05-30 01:12:42 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-05-30 01:12:42 -0400 |
commit | 55f45bc7222ec50b72aa8411c61e30184d0ade23 (patch) | |
tree | 05a4769f5104721323c58363aa746367416f5875 | |
parent | dd5f50da6f6c3df5647e922e47f8568a8896a752 (diff) | |
download | musl-55f45bc7222ec50b72aa8411c61e30184d0ade23.tar.gz musl-55f45bc7222ec50b72aa8411c61e30184d0ade23.tar.xz musl-55f45bc7222ec50b72aa8411c61e30184d0ade23.zip |
fix sendfile syscall to use 64-bit off_t
somehow the remapping of this syscall to the 64-bit version was overlooked. the issue was found, and patch provided, by Stefan Kristiansson. presumably the reason this bug was not caught earlier is that the syscall takes a pointer to off_t rather than a value, so on little-endian systems, everything appears to work as long as the offset value fits in the low 31 bits. on big-endian systems, though, sendfile was presumably completely non-functional.
-rw-r--r-- | src/internal/syscall.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/internal/syscall.h b/src/internal/syscall.h index 08a85784..3f4490e1 100644 --- a/src/internal/syscall.h +++ b/src/internal/syscall.h @@ -163,6 +163,11 @@ long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...), #define SYS_fadvise SYS_fadvise64_64 #endif +#ifdef SYS_sendfile64 +#undef SYS_sendfile +#define SYS_sendfile SYS_sendfile64 +#endif + /* socketcall calls */ #define __SC_socket 1 |