From 94a2c04c906188a9ec0e990179a033ec91c1f988 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 6 Jun 2014 17:56:36 -0400 Subject: 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. --- src/internal/syscall.h | 5 +++++ 1 file changed, 5 insertions(+) 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 -- cgit v1.2.1