summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-06-06 17:56:36 -0400
committerRich Felker <dalias@aerifal.cx>2014-06-06 17:56:36 -0400
commit94a2c04c906188a9ec0e990179a033ec91c1f988 (patch)
tree2e1d8d82b6bebb598cb66cf45783e39da77d7b52
parent0f8b7e0b61bc59c89f97140d263ff7fc427c1c34 (diff)
downloadmusl-94a2c04c906188a9ec0e990179a033ec91c1f988.tar.gz
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. corresponds to commit 55f45bc7222ec50b72aa8411c61e30184d0ade23 in master branch.
-rw-r--r--src/internal/syscall.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/internal/syscall.h b/src/internal/syscall.h
index dcfae003..d0fe107e 100644
--- a/src/internal/syscall.h
+++ b/src/internal/syscall.h
@@ -163,4 +163,9 @@ 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
+
#endif