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
#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);
}
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);
}
char *icon;
char *alt;
char *desc;
- off_t size;
+ apr_off_t size;
apr_time_t lm;
struct ent *next;
int ascending, version_sort;
{
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);
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;
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;
}
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);