From e5260a81260d593ababfa53fcd8b82c42f30fa8b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 1 Jul 2024 19:06:36 +0200 Subject: Merging upstream version 2.4.60. Signed-off-by: Daniel Baumann --- include/ap_config_auto.h.in | 6 ++++++ include/ap_mmn.h | 6 +++++- include/ap_release.h | 2 +- include/http_core.h | 3 +++ include/http_protocol.h | 11 +++++++++++ include/httpd.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 69 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/ap_config_auto.h.in b/include/ap_config_auto.h.in index b4de75a..7c23964 100644 --- a/include/ap_config_auto.h.in +++ b/include/ap_config_auto.h.in @@ -52,6 +52,9 @@ /* Using autoconf to configure Apache */ #undef AP_USING_AUTOCONF +/* Define as default argument for thread id in error logging */ +#undef DEFAULT_LOG_TID + /* Define to 1 if you have the 'arc4random_buf' function. */ #undef HAVE_ARC4RANDOM_BUF @@ -61,6 +64,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_BSTRING_H +/* Enable FD passing support in mod_cgid */ +#undef HAVE_CGID_FDPASSING + /* Define if crypt() supports SHA-2 hashes */ #undef HAVE_CRYPT_SHA2 diff --git a/include/ap_mmn.h b/include/ap_mmn.h index 6f80ab3..00475bf 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -599,6 +599,10 @@ * 20120211.129 (2.4.58-dev) Add ap_get_pollfd_from_conn() * 20120211.130 (2.4.59-dev) Add ap_proxy_determine_address() * 20120211.131 (2.4.59-dev) Add DAV_WALKTYPE_TOLERANT + * 20120211.132 (2.4.60-dev) Add ap_set_content_type_ex(), ap_filepath_merge(), + * and AP_REQUEST_TRUSTED_CT BNOTE. + * 20120211.133 (2.4.60-dev) Add ap_proxy_fixup_uds_filename() + * 20120211.134 (2.4.60-dev) AP_SLASHES and AP_IS_SLASH */ #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */ @@ -606,7 +610,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120211 #endif -#define MODULE_MAGIC_NUMBER_MINOR 131 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 134 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/include/ap_release.h b/include/ap_release.h index 827dfc0..635bdfd 100644 --- a/include/ap_release.h +++ b/include/ap_release.h @@ -43,7 +43,7 @@ #define AP_SERVER_MAJORVERSION_NUMBER 2 #define AP_SERVER_MINORVERSION_NUMBER 4 -#define AP_SERVER_PATCHLEVEL_NUMBER 59 +#define AP_SERVER_PATCHLEVEL_NUMBER 60 #define AP_SERVER_DEVBUILD_BOOLEAN 0 /* Synchronize the above with docs/manual/style/version.ent */ diff --git a/include/http_core.h b/include/http_core.h index 948034f..9fb9f51 100644 --- a/include/http_core.h +++ b/include/http_core.h @@ -756,6 +756,9 @@ typedef struct { apr_size_t flush_max_threshold; apr_int32_t flush_max_pipelined; unsigned int strict_host_check; +#ifdef WIN32 + apr_array_header_t *unc_list; +#endif } core_server_config; /* for AddOutputFiltersByType in core.c */ diff --git a/include/http_protocol.h b/include/http_protocol.h index 94c481e..f2c99c9 100644 --- a/include/http_protocol.h +++ b/include/http_protocol.h @@ -438,6 +438,17 @@ AP_DECLARE(void) ap_clear_method_list(ap_method_list_t *l); */ AP_DECLARE(void) ap_set_content_type(request_rec *r, const char *ct); +/** + * Set the content type for this request (r->content_type). + * @param r The current request + * @param ct The new content type + * @param trusted If non-zero, The content-type should come from a + * trusted source such as server configuration rather + * than application output. + * for the AddOutputFilterByType directive to work correctly. + */ +AP_DECLARE(void) ap_set_content_type_ex(request_rec *r, const char *ct, int trusted); + /** * Set the Accept-Ranges header for this response * @param r The current request diff --git a/include/httpd.h b/include/httpd.h index 799cf97..3aa05ba 100644 --- a/include/httpd.h +++ b/include/httpd.h @@ -667,6 +667,7 @@ typedef apr_uint64_t ap_request_bnotes_t; * */ #define AP_REQUEST_STRONG_ETAG 1 >> 0 +#define AP_REQUEST_TRUSTED_CT 1 << 1 /** * This is a convenience macro to ease with getting specific request @@ -689,6 +690,12 @@ typedef apr_uint64_t ap_request_bnotes_t; AP_REQUEST_GET_BNOTE((r), AP_REQUEST_STRONG_ETAG) /** @} */ +/** + * Returns true if the content-type field is from a trusted source + */ +#define AP_REQUEST_IS_TRUSTED_CT(r) \ + (!!AP_REQUEST_GET_BNOTE((r), AP_REQUEST_TRUSTED_CT)) +/** @} */ /** * @defgroup module_magic Module Magic mime types @@ -2656,6 +2663,42 @@ AP_DECLARE(const char *)ap_dir_fnmatch(ap_dir_match_t *w, const char *path, */ AP_DECLARE(int) ap_is_chunked(apr_pool_t *p, const char *line); + +/** + * apr_filepath_merge with an allow-list + * Merge additional file path onto the previously processed rootpath + * @param newpath the merged paths returned + * @param rootpath the root file path (NULL uses the current working path) + * @param addpath the path to add to the root path + * @param flags the desired APR_FILEPATH_ rules to apply when merging + * @param p the pool to allocate the new path string from + * @remark if the flag APR_FILEPATH_TRUENAME is given, and the addpath + * contains wildcard characters ('*', '?') on platforms that don't support + * such characters within filenames, the paths will be merged, but the + * result code will be APR_EPATHWILD, and all further segments will not + * reflect the true filenames including the wildcard and following segments. + */ +AP_DECLARE(apr_status_t) ap_filepath_merge(char **newpath, + const char *rootpath, + const char *addpath, + apr_int32_t flags, + apr_pool_t *p); + +#ifdef WIN32 +#define apr_filepath_merge ap_filepath_merge +#endif + +/* Win32/NetWare/OS2 need to check for both forward and back slashes + * in ap_normalize_path() and ap_escape_url(). + */ +#ifdef CASE_BLIND_FILESYSTEM +#define AP_IS_SLASH(s) ((s == '/') || (s == '\\')) +#define AP_SLASHES "/\\" +#else +#define AP_IS_SLASH(s) (s == '/') +#define AP_SLASHES "/" +#endif + #ifdef __cplusplus } #endif -- cgit v1.2.3