summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/cache/mod_file_cache.c5
-rw-r--r--modules/generators/mod_asis.c3
-rw-r--r--modules/generators/mod_autoindex.c2
-rw-r--r--modules/http/http_protocol.c4
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;