diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/cache/mod_file_cache.c | 5 | ||||
-rw-r--r-- | modules/generators/mod_asis.c | 3 | ||||
-rw-r--r-- | modules/generators/mod_autoindex.c | 2 | ||||
-rw-r--r-- | modules/http/http_protocol.c | 4 |
4 files changed, 10 insertions, 4 deletions
diff --git a/modules/cache/mod_file_cache.c b/modules/cache/mod_file_cache.c index d29d472027..a07d25ca57 100644 --- a/modules/cache/mod_file_cache.c +++ b/modules/cache/mod_file_cache.c @@ -222,7 +222,10 @@ static void cache_the_file(cmd_parms *cmd, const char *filename, int mmap) #if APR_HAS_MMAP if (mmap) { - /* MMAPFile directive. MMAP'ing the file */ + /* MMAPFile directive. MMAP'ing the file + * XXX: APR_HAS_LARGE_FILES issue; need to reject this request if + * size is greater than MAX(apr_size_t) (perhaps greater than 1M?). + */ if ((rc = apr_mmap_create(&new_file->mm, fd, 0, new_file->finfo.size, APR_MMAP_READ, cmd->pool)) != APR_SUCCESS) { apr_file_close(fd); diff --git a/modules/generators/mod_asis.c b/modules/generators/mod_asis.c index 63594236d5..a7520495b4 100644 --- a/modules/generators/mod_asis.c +++ b/modules/generators/mod_asis.c @@ -118,6 +118,9 @@ static int asis_handler(request_rec *r) } if (!r->header_only) { + /* XXX: APR_HAS_LARGE_FILES issue; need to split into mutiple send_fd + * chunks, no greater than MAX(apr_size_t). + */ ap_send_fd(f, r, 0, r->finfo.size, &nbytes); } diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index 649f5053ec..8906251ddc 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -703,7 +703,7 @@ struct ent { char *icon; char *alt; char *desc; - off_t size; + apr_off_t size; apr_time_t lm; struct ent *next; int ascending, version_sort; diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index 6bc126e341..4e1be8ce42 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -883,7 +883,7 @@ static void terminate_header(apr_bucket_brigade *bb) { char tmp[] = "X-Pad: avoid browser bug" CRLF; char crlf[] = CRLF; - apr_ssize_t len; + apr_off_t len; apr_size_t buflen; (void) apr_brigade_length(bb, 1, &len); @@ -2272,7 +2272,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_byterange_filter( apr_off_t range_end; char *current; char *bound_head; - apr_ssize_t bb_length; + apr_off_t bb_length; apr_off_t clength = 0; apr_status_t rv; int found = 0; |