From 18716d0ee1ec7efa6c9f2bbda53a9dc09dd03ab7 Mon Sep 17 00:00:00 2001 From: Eric Covener Date: Mon, 21 Nov 2011 01:04:58 +0000 Subject: [PATCH] Merge r1204307 from trunk: PR39923: Allow AddDescription to work with absolute filesystem paths, by not adding "*/" to their prefix (intended for relative paths) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1204309 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 3 +++ modules/generators/mod_autoindex.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 91db4c5eb9..7a6933103b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.4.0 + *) mod_autoindex: Allow AddDescription "file" arguments to be an + absolute path as previously documented. PR39923 [Eric Covener] + *) mod_cache_disk: Remove the unnecessary intermediate brigade while writing to disk. Fixes a problem where mod_disk_cache was leaving buckets in the intermediate brigade and not passing them to out on diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index b688867363..1007b8e7db 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -300,6 +300,7 @@ static const char *add_desc(cmd_parms *cmd, void *d, const char *desc, autoindex_config_rec *dcfg = (autoindex_config_rec *) d; ai_desc_t *desc_entry; char *prefix = ""; + int is_abspath = ap_os_is_path_absolute(cmd->temp_pool, to); desc_entry = (ai_desc_t *) apr_array_push(dcfg->desc_list); desc_entry->full_path = (ap_strchr_c(to, '/') == NULL) ? 0 : 1; @@ -307,7 +308,12 @@ static const char *add_desc(cmd_parms *cmd, void *d, const char *desc, || desc_entry->full_path || apr_fnmatch_test(to)); if (desc_entry->wildcards) { - prefix = desc_entry->full_path ? "*/" : "*"; + if (desc_entry->full_path && !is_abspath) { + prefix = "*/"; + } + else if (WILDCARDS_REQUIRED) { + prefix = "*"; + } desc_entry->pattern = apr_pstrcat(dcfg->desc_list->pool, prefix, to, "*", NULL); } -- 2.40.0