From: Jim Jagielski Date: Thu, 10 Feb 2011 15:24:20 +0000 (+0000) Subject: PR47766 X-Git-Tag: 2.2.18~144 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=714e9542d320a79ed1d5e658199b8b3d8b0476fb;p=thirdparty%2Fapache%2Fhttpd.git PR47766 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@1069424 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 14883f2257a..cbfe34fd35c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.18 + *) mod_autoindex: Merge IndexOptions from server to directory context when + the directory has no mod_autoindex directives. PR 47766. [Eric Covener] + *) mod_cache: Make sure that we never allow a 304 Not Modified response that we asked for to leak to the client should the 304 response be uncacheable. PR45341 [Graham Leggett] diff --git a/STATUS b/STATUS index 7ce60ec11e2..95e86af297d 100644 --- a/STATUS +++ b/STATUS @@ -90,12 +90,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * autoindex: fix merge of IndexOptions into per-dir configs - without any autoindex options. PR47766 - Trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1031430 - 2.2.x patch: http://people.apache.org/~covener/patches/2.2.x-autoindex_merge.diff - +1 covener, rpluem, jim - * mod_ssl: Correctly read full lines in input filter when the line is incomplete during first read. PR 50481. Trunk version of patch: diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index ef17f66618f..5c03d99f99d 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -71,6 +71,7 @@ module AP_MODULE_DECLARE_DATA autoindex_module; #define IGNORE_CASE (1 << 16) #define EMIT_XHTML (1 << 17) #define SHOW_FORBIDDEN (1 << 18) +#define OPTION_UNSET (1 << 19) #define K_NOADJUST 0 #define K_ADJUST 1 @@ -621,7 +622,7 @@ static void *create_autoindex_config(apr_pool_t *p, char *dummy) new->ign_list = apr_array_make(p, 4, sizeof(struct item)); new->hdr_list = apr_array_make(p, 4, sizeof(struct item)); new->rdme_list = apr_array_make(p, 4, sizeof(struct item)); - new->opts = 0; + new->opts = OPTION_UNSET; new->incremented_opts = 0; new->decremented_opts = 0; new->default_keyid = '\0'; @@ -655,9 +656,9 @@ static void *merge_autoindex_configs(apr_pool_t *p, void *basev, void *addv) new->desc_list = apr_array_append(p, add->desc_list, base->desc_list); new->icon_list = apr_array_append(p, add->icon_list, base->icon_list); new->rdme_list = apr_array_append(p, add->rdme_list, base->rdme_list); - if (add->opts & NO_OPTIONS) { + if (add->opts == NO_OPTIONS) { /* - * If the current directory says 'no options' then we also + * If the current directory explicitly says 'no options' then we also * clear any incremental mods from being inheritable further down. */ new->opts = NO_OPTIONS; @@ -671,7 +672,7 @@ static void *merge_autoindex_configs(apr_pool_t *p, void *basev, void *addv) * Contrariwise, we *do* inherit if the only settings here are * incremental ones. */ - if (add->opts == 0) { + if (add->opts == OPTION_UNSET) { new->incremented_opts = (base->incremented_opts | add->incremented_opts) & ~add->decremented_opts;