diff options
author | William A. Rowe Jr <wrowe@apache.org> | 2001-07-24 22:38:01 +0200 |
---|---|---|
committer | William A. Rowe Jr <wrowe@apache.org> | 2001-07-24 22:38:01 +0200 |
commit | 7b2c62a74e85f8ce3b1931452cac2db556651046 (patch) | |
tree | 95aca006687973b000fa5624eb4c220981139e2e | |
parent | It's a nit, but since I'm searching for "win32" it ought to be there :) (diff) | |
download | apache2-7b2c62a74e85f8ce3b1931452cac2db556651046.tar.xz apache2-7b2c62a74e85f8ce3b1931452cac2db556651046.zip |
Changes to respect the new apr bucket and brigade length types (either
apr_size_t for bucket lengths, or apr_off_t for aggregate brigade lengths.)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89683 13f79535-47bb-0310-9956-ffa450edef68
-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 | ||||
-rw-r--r-- | server/core.c | 6 |
5 files changed, 15 insertions, 5 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; diff --git a/server/core.c b/server/core.c index 9cc5d181f7..557c800f6c 100644 --- a/server/core.c +++ b/server/core.c @@ -2494,7 +2494,7 @@ static apr_status_t writev_it_all(apr_socket_t *s, apr_size_t bytes_written = 0; apr_status_t rv; apr_size_t n = len; - apr_size_t i = 0; + int i = 0; *nbytes = 0; @@ -2996,6 +2996,10 @@ static int default_handler(request_rec *r) } bb = apr_brigade_create(r->pool); + /* XXX: APR_HAS_LARGE_FILES issue; need to split into mutiple buckets, + * no greater than MAX(apr_size_t), (perhaps more granular than that + * in case the brigade code/filters attempt to read it!) + */ e = apr_bucket_file_create(fd, 0, r->finfo.size, r->pool); APR_BRIGADE_INSERT_HEAD(bb, e); |