fix sendfile on 64-bit Linux and limit_rate on all 64-bit platforms
for 2G+ files
diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c
index 97f968c..476eff3 100644
--- a/src/os/unix/ngx_freebsd_sendfile_chain.c
+++ b/src/os/unix/ngx_freebsd_sendfile_chain.c
@@ -154,7 +154,7 @@
size = limit - send;
aligned = (cl->buf->file_pos + size + ngx_pagesize - 1)
- & ~(ngx_pagesize - 1);
+ & ~((off_t) ngx_pagesize - 1);
if (aligned <= cl->buf->file_last) {
size = aligned - cl->buf->file_pos;
diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c
index 1d602c8..eb15c7a 100644
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -223,7 +223,7 @@
size = limit - send;
aligned = (cl->buf->file_pos + size + ngx_pagesize - 1)
- & ~(ngx_pagesize - 1);
+ & ~((off_t) ngx_pagesize - 1);
if (aligned <= cl->buf->file_last) {
size = aligned - cl->buf->file_pos;
diff --git a/src/os/unix/ngx_solaris_sendfilev_chain.c b/src/os/unix/ngx_solaris_sendfilev_chain.c
index ebccae8..04e3366 100644
--- a/src/os/unix/ngx_solaris_sendfilev_chain.c
+++ b/src/os/unix/ngx_solaris_sendfilev_chain.c
@@ -135,7 +135,7 @@
size = limit - send;
aligned = (cl->buf->file_pos + size + ngx_pagesize - 1)
- & ~(ngx_pagesize - 1);
+ & ~((off_t) ngx_pagesize - 1);
if (aligned <= cl->buf->file_last) {
size = aligned - cl->buf->file_pos;