summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam A. Rowe Jr <wrowe@apache.org>2001-07-24 22:38:01 +0200
committerWilliam A. Rowe Jr <wrowe@apache.org>2001-07-24 22:38:01 +0200
commit7b2c62a74e85f8ce3b1931452cac2db556651046 (patch)
tree95aca006687973b000fa5624eb4c220981139e2e
parent It's a nit, but since I'm searching for "win32" it ought to be there :) (diff)
downloadapache2-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.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
-rw-r--r--server/core.c6
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);