From: Yann Ylavic Date: Tue, 16 Aug 2016 23:17:46 +0000 (+0000) Subject: Merge r1746207 from trunk: X-Git-Tag: 2.4.24~319 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb3620e5c9867da8e268bf7a4e98e90b2e3d3476;p=thirdparty%2Fapache%2Fhttpd.git Merge r1746207 from trunk: mod_dav: Add support for childtags to dav_error. Submitted by: minfrin Reviewed by: minfrin, jim, ylavic git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1756560 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 488907e8c89..fa5fa5251c5 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,9 @@ Changes with Apache 2.4.24 *) core: CVE-2016-5387: Mitigate [f]cgi "httpoxy" issues. [Dominic Scheirlinck , Yann Ylavic] + *) mod_dav: Add support for childtags to dav_error. + [Jari Urpalainen ] + *) mod_proxy_fcgi: Fix 2.4.23 breakage for mod_rewrite per-dir and query string showing up in SCRIPT_FILENAME. PR59815 diff --git a/STATUS b/STATUS index 9092b793974..680f8ec1ed0 100644 --- a/STATUS +++ b/STATUS @@ -117,11 +117,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) mod_dav: Add support for childtags to dav_error. - trunk patch: http://svn.apache.org/r1746207 - 2.4.x: trunk works modulo CHANGES/MMN - +1: minfrin, jim, ylavic - *) mod_dav: Add dav_begin_multistatus, dav_send_one_response, dav_finish_multistatus, dav_send_multistatus, dav_handle_err, dav_failed_proppatch, dav_success_proppatch to mod_dav.h. diff --git a/include/ap_mmn.h b/include/ap_mmn.h index 54cbbee4783..0a3e8f50e0f 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -477,6 +477,7 @@ * extended proxy_worker_shared. * 20120211.60 (2.4.21-dev) Add dav_get_provider_name. * 20120211.61 (2.4.21-dev) Add ap_cstr_casecmp[n]() - placeholder of apr_ fns + * 20120211.62 (2.4.24-dev) Add childtags to dav_error. */ #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */ @@ -484,7 +485,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120211 #endif -#define MODULE_MAGIC_NUMBER_MINOR 61 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 62 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/modules/dav/main/mod_dav.c b/modules/dav/main/mod_dav.c index 22ff32f1311..dc914199116 100644 --- a/modules/dav/main/mod_dav.c +++ b/modules/dav/main/mod_dav.c @@ -364,16 +364,33 @@ static int dav_error_response_tag(request_rec *r, ap_rputs(" xmlns:m=\"http://apache.org/dav/xmlns\"", r); } - if (err->namespace != NULL) { - ap_rprintf(r, - " xmlns:C=\"%s\">" DEBUG_CR - "" DEBUG_CR, - err->namespace, err->tagname); + if (err->childtags) { + if (err->namespace != NULL) { + ap_rprintf(r, + " xmlns:C=\"%s\">" DEBUG_CR + "%s" DEBUG_CR, + err->namespace, + err->tagname, err->childtags, err->tagname); + } + else { + ap_rprintf(r, + ">" DEBUG_CR + "%s" DEBUG_CR, + err->tagname, err->childtags, err->tagname); + } } else { - ap_rprintf(r, - ">" DEBUG_CR - "" DEBUG_CR, err->tagname); + if (err->namespace != NULL) { + ap_rprintf(r, + " xmlns:C=\"%s\">" DEBUG_CR + "" DEBUG_CR, + err->namespace, err->tagname); + } + else { + ap_rprintf(r, + ">" DEBUG_CR + "" DEBUG_CR, err->tagname); + } } /* here's our mod_dav specific tag: */ diff --git a/modules/dav/main/mod_dav.h b/modules/dav/main/mod_dav.h index a51e7c5307f..6104ae6997e 100644 --- a/modules/dav/main/mod_dav.h +++ b/modules/dav/main/mod_dav.h @@ -130,6 +130,8 @@ typedef struct dav_error { struct dav_error *prev; /* previous error (in stack) */ + const char *childtags; /* error-tag may have children */ + } dav_error; /*