1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00

9489 Commits

Author SHA1 Message Date
Eric Covener
7c32a06bc5 Merge r1938690 from trunk:
drop hop-by-hop headers from UWSGI

Submitted By: Maya Echtinaw




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938691 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 11:28:59 +00:00
Eric Covener
fa8c354189 Merge r1938681 from trunk:
limit dav namespaces




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938682 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:55:31 +00:00
Eric Covener
dce2ddbca7 Merge r1938679 from trunk:
fix userdir check



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938680 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:52:02 +00:00
Eric Covener
6fa059e4a2 Merge r1938677 from trunk:
handle incomplete input



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938678 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:46:00 +00:00
Eric Covener
7ed3f91688 Merge r1938675 from trunk:
harden vhost_alias



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938676 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:44:30 +00:00
Eric Covener
c0a3e5cbcb Merge r1938673 from trunk:
check PASV addresses



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938674 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:38:27 +00:00
Eric Covener
1ee1c1fef2 Merge r1938671 from trunk:
don't expose file funcs in SSLRequire



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938672 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:34:48 +00:00
Eric Covener
5a00f76e12 Merge r1938666 from trunk:
block dav state dir



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938668 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:31:33 +00:00
Eric Covener
d072ed8f06 Merge r1938664 from trunk:
careful handling of session bbtmp



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938665 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:28:40 +00:00
Eric Covener
20194c7cc7 revert, trunk first
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938663 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:28:00 +00:00
Eric Covener
7161e3d4bb more careful handling of session bbtmp
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938662 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:27:12 +00:00
Eric Covener
c721d4e1cf Merge r1935931 from trunk:
* modules/filters/mod_proxy_html.c (pcomment): Don't dump content
  when printing a comment. (regression in r1934975)

Fixes: 9dc00bf229
Github: closes #681



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938661 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:26:21 +00:00
Eric Covener
6e4d1e6145 Merge r1938659 from trunk:
copy lookahead value



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938660 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:24:19 +00:00
Eric Covener
6654234dcb Merge r1938657 from trunk:
handle incomplete char



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938658 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:23:23 +00:00
Eric Covener
cb5163f30d Merge r1938655 from trunk:
remove session cookie consistently



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938656 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:22:11 +00:00
Eric Covener
7b12a7936e Merge r1938653 from trunk:
validate body and query



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938654 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:20:47 +00:00
Eric Covener
a653b98099 Merge r1938651 from trunk:
max active locks



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938652 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:18:27 +00:00
Eric Covener
863594b373 Merge r1938649 from trunk:
don't use CT as handler



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938650 13f79535-47bb-0310-9956-ffa450edef68
2026-09-29 08:16:44 +00:00
Joe Orton
17072548a1 Merge r1937524 from trunk:
mod_http2: Don't abort a debug build over a stream reclaimed unprocessed.

A stream created but never scheduled (e.g. after a connection-level
protocol error) is reclaimed with the session pool rather than
destroyed explicitly, which is harmless; use-after-free is still
caught by H2_STRM_ASSERT_MAGIC at each use. nghttp2 promoted various
stream errors to connection errors in 1.67.0, which triggers this
assertion.

* modules/http2/h2_stream.c (stream_pool_destroy): Trace-log rather than
  assert for a stream reclaimed without an explicit destroy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Github: closes #775
Reviewed by: jorton, covener, jim


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938634 13f79535-47bb-0310-9956-ffa450edef68
2026-09-28 18:58:27 +00:00
Eric Covener
91bc61649f synch ldap w/ trunk
Submitted by:  covener
Reviewed by: covener, jorton, jim

Github: closes #712


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938613 13f79535-47bb-0310-9956-ffa450edef68
2026-09-28 13:16:28 +00:00
Eric Covener
d2c3595c22 Merge r1937678 from trunk:
[BUGZ 70192] - Health Check Mechanism Failure Causing 503 Errors and High CPU/Memory

Reviewed By: jim, jorton, covener



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938606 13f79535-47bb-0310-9956-ffa450edef68
2026-09-28 12:29:06 +00:00
Joe Orton
48f9ad3f0b Merge r1937525, r1937527, r1937528 from trunk:
fix off-by-one in proxy_send_dir_filter

mod_lua: fix stack write past apr_size_t in r:parsebody

mod_proxy_http2: reserve NUL when rewriting a backend Link header uri

Submitted by: arshiya tabasum <arshi bugqore.com>
Reviewed by: covener, jim, jorton
GitHub: closes #718


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938349 13f79535-47bb-0310-9956-ffa450edef68
2026-09-18 16:47:08 +00:00
Joe Orton
727e9b9b6c Merge r1935577 from trunk:
Fix pre-1.1.0 compat macros for X509_get0_notBefore/notAfter/serialNumber

The compat macros added in 83d565f for pre-1.1.0 OpenSSL used incorrect
names (X509_get0_before/X509_get0_after) which don't match the actual
API names used in the code (X509_get0_notBefore/X509_get0_notAfter).
This caused link failures when building against OpenSSL 1.0.2.

Also add missing X509_get0_serialNumber compat macro which was used in
ssl_engine_log.c but never shimmed for pre-1.1.0.

Submitted by: Craig Lorentzen <crlorent amazon.com>
Github: closes #673, closes #742
Reviewed by: jorton, covener, rjung


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1938342 13f79535-47bb-0310-9956-ffa450edef68
2026-09-18 06:54:37 +00:00
Jim Jagielski
fc722c619f Merge r1731662, r1934434, r1935944, r1935945, r1935946, r1935947, r1935948, r1935949, r1935950, r1935951, r1935952, r1935953, r1935954, r1937104, r1937105, r1937106, r1937107, r1937108, r1937109, r1937110, r1937111 from trunk:
PR59039 Digest not working with ap_expr based AuthName 

Stop caching the configured realm during config processing and always
call ap_auth_name(r) to determine (=evaluate potential expression)
the configured realm



* modules/aaa/mod_auth_digest.c: Remove undocumented and unimplemented
  AuthDigestNonceFormat directive.

PR: 70056


mod_auth_digest: Drop RFC 2069 and configurable qop support.
(RFC 2617, which replaced 2069, is now 26 years old)

* modules/aaa/mod_auth_digest.c (digest_config_rec): Remove qop_list
  field.
  (create_digest_dir_config): Remove qop_list initialization.
  (set_qop): Deprecate AuthDigestQop, only "auth" is supported.
  (note_digest_auth_failure): Always send qop="auth".
  (check_nc): Remove handling for qop=none.
  (old_digest): Remove function.
  (authenticate_digest_user): Reject requests with missing or
  non-"auth" qop value rather than falling back to RFC 2069.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub: PR #661


* modules/aaa/mod_auth_digest.c: Remove "weird" override of AuthName
  directive, which adds complexity for little benefit (avoids putting
  20 bytes through SHA1 for each auth attempt).
  (set_realm): Remove function.
  (gen_nonce_hash): Create the nonce hash here from scratch.
  (create_digest_dir_config): Always allocate a config struct.
  Remove unused dir_name field from digest_config_rec.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub: PR #661


* modules/aaa/mod_auth_digest.c (set_algorithm): Note that
  conf->algorithm is a constant ("MD5") so there is no point
  in overriding it at runtime. Simplify error case.

GitHub: PR #661


* modules/aaa/config.m4,
  modules/aaa/mod_auth_digest.c (pre_init, initialize_module):
  Prevent using mod_auth_digest without APR_HAS_SHARED_MEMORY.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c: Use apr_uint32_t for the
  one-time-nonce counter.
  (gen_nonce): Drop the fallback case for non-shmem builds
  where otn_counter could be NULL previously. Use atomics
  to increment the counter.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c (get_digest_rec):
  Parse opaque more strictly.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c (cleanup_tables, initialize_tables,
  initialize_child, gen_client): Replace mutex-protected opaque_cntr
  with opaque_counter, incremented via atomics.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c (pre_init): Don't register
  now-unused "authdigest-opaque" mutex type.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c: Remove checks for NULL client_shm
  throughout.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c: Fix comments.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c (add_auth_info): Don't add
  (Proxy-)Authentication-Info headers to 401/407 responses.

GitHub: PR #661


* modules/aaa/mod_auth_digest.c: Fix AuthDigestNcCheck: track the
  nonce-count per-nonce, require it to increase (RFC 7616 3.4.3), and
  record it only for a fully verified request.

* test/modules/aaa/test_007_replay.py: Add replay tests.
* test/modules/aaa/test_003_nccheck.py, test/modules/aaa/conftest.py:
  Update for the new semantics.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c: Consolidate one-time nonce handling
  in check_and_record_nonce, accepting a nonce iff it is newer than
  the last used, and re-challenging as stale when reused.

* test/modules/aaa/test_008_onetime_nccheck.py: Add tests for one-time
  nonces, alone and with AuthDigestNcCheck.

* test/modules/aaa/conftest.py: Add an AuthDigestNonceLifetime 0 plus
  AuthDigestNcCheck location.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c (get_digest_rec): Rename to
  parse_digest_header, returning the header status the caller stores
  in resp->auth_hdr_sts. (parse_digest_header): Rename to
  init_digest_request.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c: Don't let a client_entry pointer
  escape the client_lock critical section; look up and release per
  access rather than caching the pointer across the request.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c (note_digest_auth_failure): Return 503
  when the client entry cannot be allocated, rather than sending a
  challenge with no opaque. Default the opaque to NULL to match what
  check_nonce() hashes when the client sends none.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c (client_generate): Skip a client id
  of zero, which the counter hands out once it wraps: zero means "no
  client", so add_client() refuses it.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c (gc): Return unsigned long, the type
  the count is accumulated in and the type of the client_list counters.
  (add_client): Log those counters with %lu, all being unsigned.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


* modules/aaa/mod_auth_digest.c: Fail the build without APR_HAS_RANDOM
  or APR_HAS_SHARED_MEMORY, rather than testing at runtime. configure
  already declines to build the module without them.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub: PR #705


Submitted by: covener, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton, jorton
Reviewed by: 

Github: closes #706


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1937721 13f79535-47bb-0310-9956-ffa450edef68
2026-09-01 10:45:53 +00:00
Jim Jagielski
5b934373e3 https://github.com/apache/httpd/pull/703.patch
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1937719 13f79535-47bb-0310-9956-ffa450edef68
2026-09-01 10:27:29 +00:00
Jim Jagielski
daf01dd2ec *) mod_dir: fix crash with no content-type. PR68527
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1937718 13f79535-47bb-0310-9956-ffa450edef68
2026-09-01 10:24:52 +00:00
Jim Jagielski
a4a0eff67a *) mod_http2: Do not drop an in-flight response when a client sends a
graceful GOAWAY (error code 0) while streams it opened are still being
     processed; drain the open streams instead of tearing the session down
     (RFC 9113 compliant, bounded by Timeout). Async MPMs hit this far more
     than event. Independently useful; also a prerequisite for mpm_motorz+h2


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1937717 13f79535-47bb-0310-9956-ffa450edef68
2026-09-01 10:21:58 +00:00
Joe Orton
b24e64258a Merge r1935184 from trunk:
* modules/md/mod_md_config.c: Flip MDServerStatus to disabled by
  default.

* docs/manual/mod/mod_md.xml: Update accordingly.

Reviewed by: rjung, jim, jorton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1936207 13f79535-47bb-0310-9956-ffa450edef68
2026-07-16 14:35:44 +00:00
Jim Jagielski
f73841909c Merge r1934913 from trunk:
Use HTTP_* and ap_is_*() macros instead of literals
Submitted by: michaelo
Reviewed by: rjung, jim, jorton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935938 13f79535-47bb-0310-9956-ffa450edef68
2026-07-06 11:55:01 +00:00
Jim Jagielski
937f117a11 *) include/httpd.h: Define HTTP_EARLY_HINTS (103) per RFC 8297.
modules/http/http_protocol.c (status_lines): Add 103 response.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935818 13f79535-47bb-0310-9956-ffa450edef68
2026-07-02 19:55:40 +00:00
Jim Jagielski
95e4ddaaa0 *) Constify static arrays of string constants.
trunk patch: https://svn.apache.org/r1933659


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935817 13f79535-47bb-0310-9956-ffa450edef68
2026-07-02 19:54:30 +00:00
Jim Jagielski
35a154e4b8 *) modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl_cert_remain):
Fix off-by-one in tm_mday calculation, identified by Gemini.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935816 13f79535-47bb-0310-9956-ffa450edef68
2026-07-02 19:53:40 +00:00
Rainer Jung
6cd9ea8dcb r1935161 | jorton | 2026-06-09 08:44:42 +0200 (Di, 09. Jun 2026) | 13 Zeilen
mod_md: Add OpenSSL 4.0 compatibility:

* Use getters instead of direct member access.

* Struct was made opaque in OpenSSL 4. Getters exist since OpenSSL 1.1.0.

* Keep OpenSSL 1.0.2 compatibility.

Merge from icing/md:
9fd90380db

Backport of r1935161 from trunk, [mod_md CTR]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935449 13f79535-47bb-0310-9956-ffa450edef68
2026-06-17 09:48:52 +00:00
Rainer Jung
ad449e35a4 mod_md: change types of fields of ocsp_summary_ctx_t
The number of members in ostat_by_id may be up to UINT_MAX
and there are no guarantees that all types of members (good,
revoked or unknown) are present. An integer overflow may also
occur in md_ocsp_get_summary() when they are summed as ints.

Change types of good, revoked and unknown to unsigned.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Submitted by: Anastasia Belova <nabelova31 gmail.com>
Github: closes #534

Backport of r1930710 from trunk, [mod_md CTR]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935448 13f79535-47bb-0310-9956-ffa450edef68
2026-06-17 09:44:36 +00:00
Eric Covener
f63f26aff6 Merge r1935016 from trunk:
restrict per-dir file funcs centrally

Reviewed By: covener, jorton, jfclere


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935017 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:28:53 +00:00
Eric Covener
7d9f3cfb10 Merge r1935014 from trunk:
ap_regname: restrict to reasonable captures

Reviewed By: covener, gbechis, jfclere



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935015 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:26:23 +00:00
Eric Covener
56bfb12843 Merge r1935009 from trunk:
dav_fs_get_resource: disallow DAV_FS_STATE_DIR


Submitted By: jorton
Reviewed By: jorton, covener, gbechis


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935013 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:13:46 +00:00
Eric Covener
403269396d Merge r1935007 from trunk:
ap_proxy_cookie_revers: fix dup path/domain


Reviewed By: covener, jailletc36, jfclere


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935008 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:07:34 +00:00
Eric Covener
6ff9dc2fdb Merge r1935005 from trunk:
merge_response_headers: fix lang iteration

reviewed by: covener, jfclere, jorton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935006 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:05:36 +00:00
Eric Covener
414de374a0 Merge r1935003 from trunk:
fix iteration

Reviewed By:covener, jorton, jfclere, jailletc36


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1935004 13f79535-47bb-0310-9956-ffa450edef68
2026-06-05 10:01:52 +00:00
Joe Orton
04641bce75 Merge r1934981 from trunk:
* modules/proxy/mod_proxy_ftp.c (proxy_ftp_dir_filter): Use
  ap_os_escape_path() with ap_escape_html() instead of
  ap_escape_uri() for href attributes in generated directory
  listing links.

Reviewed by: jorton, covener, jfclere


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934982 13f79535-47bb-0310-9956-ffa450edef68
2026-06-04 15:48:59 +00:00
Joe Orton
d62fc37528 Merge r1934975 from trunk:
mod_proxy_html: Simplify to use the ap_varbuf API.

* modules/filters/mod_proxy_html.c: Include util_varbuf.h.
  (saxctxt): Replace buf/offset/avail members with struct ap_varbuf vb.
  (DEFAULT_BUFSZ): New macro.
  (normalise): Take struct ap_varbuf * parameter instead of char *.
  (preserve, pappend): Remove functions, replaced by ap_varbuf_grow
  and ap_varbuf_strmemcat respectively.
  (dump_content): Use ap_varbuf for regex substitutions via
  ap_varbuf_regsub, avoiding manual buffer resizing with
  preserve/memmove/memcpy.  Use a temporary ap_varbuf for building
  regex replacement results.
  (pcharacters, pcomment): Use ap_varbuf_strmemcat and ap_varbuf_strcat
  in place of pappend.
  (pendElement): Check vb.strlen instead of offset.
  (pstartElement): Use ap_varbuf for attribute URL rewriting with the
  same ap_varbuf_regsub approach.  Use a temporary ap_varbuf for
  regex replacements.
  (proxy_html_filter): Initialize the ap_varbuf with a clamped bufsz.
  (proxy_html_merge): Use DEFAULT_BUFSZ macro.

Assisted-by: Claude Opus 4.6 (claude-opus-4-6)
Reviewed by: covener, jfclere, jorton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934977 13f79535-47bb-0310-9956-ffa450edef68
2026-06-04 11:22:27 +00:00
Joe Orton
83d565fbb5 Merge r1933586, r1916058, r1916068, r1933631, r1929891 from trunk:
Fix OpenSSL 4.0 compatibility and test that in CI.

CI: Update to test OpenSSL 4.0.0 explicitly.
CI: No longer disable deprecated-declaration warnings for OpenSSL 3.4 -Werror build.

* modules/ssl/ssl_engine_kernel.c (ssl_hook_UserCheck): Change name to
  const X509_NAME *.
  (ssl_callback_proxy_cert): Change ca_name, issuer, and ca_issuer to
  const X509_NAME *.

* modules/ssl/ssl_engine_log.c (ssl_log_cert_error): Change cert
  parameter to const X509 *. Use X509_get0_serialNumber,
  X509_get0_notBefore, and X509_get0_notAfter instead of non-const
  variants.
  (ssl_log_xerror, ssl_log_cxerror, ssl_log_rxerror): Change cert
  parameter to const X509 *.

* modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl_cert_dn): Change
  xsname parameter to const X509_NAME *.
  (ssl_var_lookup_ssl_cert_dn_oneline): Change xsname parameter to
  const X509_NAME *.
  (ssl_var_lookup_ssl_cert): Change xsname to const X509_NAME *.
  (ssl_var_lookup_ssl_cert_rfc4523_cea): Change issuer to const
  X509_NAME *.

* modules/ssl/ssl_private.h (ssl_log_xerror, ssl_log_cxerror,
  ssl_log_rxerror): Update declarations to use const X509 *.

* modules/ssl/ssl_util_ssl.c (modssl_X509_NAME_to_string): Change dn
  parameter to const X509_NAME *.
  (getIDs): Change subj to const X509_NAME *.

* modules/ssl/ssl_util_ssl.h (modssl_X509_NAME_to_string): Update
  declaration to use const X509_NAME *.

* support/ab.c (ssl_print_cert_info): Change dn to const X509_NAME *.

mod_ssl: use ASN1_STRING accessor API in dump_extn_value:

* modules/ssl/ssl_engine_vars.c (dump_extn_value): Use
  ASN1_STRING_get0_data() and ASN1_STRING_length() rather than
  directly dereferencing the ASN1_OCTET_STRING structure, which is
  opaque in OpenSSL 4.0.
* modules/ssl/ssl_private.h: Add compat macros for
  ASN1_STRING_get0_data and ASN1_STRING_length for pre-1.1 API.

mod_ssl: constify ASN1_TIME pointers, use X509_get0_not{Before,After}:

* modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl_cert_valid,
  ssl_var_lookup_ssl_cert_remain): Constify ASN1_TIME * parameter.
  (ssl_var_lookup_ssl_cert): Use X509_get0_notBefore() and
  X509_get0_notAfter() which return const pointers.
  (ssl_var_lookup_ssl_cert_remain): Use ASN1_TIME_check() directly
  rather than INVALID_ASN1_TIME macro which dereferences the
  ASN1_TIME structure.
  (dump_extn_value): Constify ASN1_OCTET_STRING * parameter.
* modules/ssl/ssl_private.h: Add compat macros for
  X509_get0_before and X509_get0_after for pre-1.1 API.

mod_ssl: constify X509_NAME_ENTRY and X509_EXTENSION pointers:

* modules/ssl/ssl_engine_vars.c (ssl_var_lookup_ssl_cert_dn,
  extract_dn): Constify X509_NAME_ENTRY * variables, constify
  X509_NAME * parameter of extract_dn, drop unnecessary casts
  on X509_NAME_ENTRY_get_object() calls.
  (ssl_ext_list): Use MODSSL_X509_EXT_CONST for X509_EXTENSION *
  since X509_EXTENSION accessors are only constified in OpenSSL 4.
* modules/ssl/ssl_util_ssl.c, modules/ssl/ssl_util_ssl.h
  (modssl_X509_NAME_ENTRY_to_string): Constify X509_NAME_ENTRY *
  parameter.
* modules/ssl/ssl_private.h: Add MODSSL_X509_EXT_CONST, defined
  as const for OpenSSL 4+ and empty otherwise.

* modules/ssl/ssl_util_ssl.c (asn1_string_convert): Constify
  ASN1_STRING * argument.
* modules/ssl/ssl_engine_ocsp.c (extract_responder_uri): Use
  modssl_ASN1_STRING_convert instead of directly accessing ASN1_STRING
  data pointer.

* modules/ssl/ssl_util_ssl.c (modssl_ASN1_STRING_convert): Rename from
  asn1_string_convert and export function.
  (asn1_string_to_utf8): Update to use modssl_ASN1_STRING_convert.
  (modssl_X509_NAME_ENTRY_to_string): Update to use
  modssl_ASN1_STRING_convert.

* modules/ssl/ssl_util_ssl.h (modssl_ASN1_STRING_convert): Declare new
  function.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

CI: Add OpenSSL 3.1 builds, including a no-engine build.
(attempt to use 3.2 failed, unsure why)
- add OpenSSL build binaries to $PATH 

CI: add OpenSSL 3.2, test OpenSSL 3.x using Apache::Test
trunk to pick up r1916067.

CI: The OpenSSL no-engine config option is redundant as of 4.0, remove.

CI: Try to fix ab failures during OpenSSL ech job, set RPATH via LDFLAGS

CI: For OpenSSL branch builds, always build a fresh version of the
OpenSSL branch and cache the commit hash to allow checking for freshness.
Also clone with --depth=1 to save time+bandwidth.

Reviewed by: jorton, covener (skimmed+CI results), rpluem
Github: closes #642


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934973 13f79535-47bb-0310-9956-ffa450edef68
2026-06-04 08:50:44 +00:00
Joe Orton
cb1f79c0ce Merge r1934970 from trunk:
* modules/filters/mod_xml2enc.c (fix_skipto): Fix accounting.

Reviewed by: covener, jfclere, gbechis


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934971 13f79535-47bb-0310-9956-ffa450edef68
2026-06-04 08:47:19 +00:00
Joe Orton
2cf9b3f393 Merge r1934932 from trunk:
* modules/ldap/util_ldap.c (uldap_connection_find): Fix inheritance in
  per-dir context.

Reviewed by: jorton, covener, jfclere


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934935 13f79535-47bb-0310-9956-ffa450edef68
2026-06-03 17:09:40 +00:00
Joe Orton
32b7e2e664 Merge r1934918 from trunk:
* modules/ssl/ssl_util_ocsp.c (send_request): Increase wbuf with the
  len read by apr_socket_send

Submitted by: gbechis
Github: closes #603
Reviewed by: covener, jorton, jfclere


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934919 13f79535-47bb-0310-9956-ffa450edef68
2026-06-03 10:44:38 +00:00
Eric Covener
8c83052203 Merge r1934210 from trunk:
mod_ssl: Set auth type to \"ClientCert\" after authentication

When client certificate authentication has been performed r->ap_auth_type was
never populated and env AUTH_TYPE was empty.
We now set auth type to \"ClientCert\".

PR: 45058
Submitted by: Michael Osipov <michaelo@apache.org>
Reviewed by:  michaelo, jorton, rpluem
Github: closes #645



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934901 13f79535-47bb-0310-9956-ffa450edef68
2026-06-02 17:14:41 +00:00
Eric Covener
bd7aecd4e7 Merge r1933908 from trunk:
mod_ssl: Expose serialNumber (2.5.4.5) as standard env var from certificate DN

serialNumber (2.5.4.5) is a standard LDAP attribute embedded in the subject's
and/or issuer's DN, extract it by standard means from the DN and expose
via StdEnvVars.

PR: 35154
Co-authored-by: Michael Osipov <michaelo@apache.org>
Submitted by: Benjamin Demarteau <benjamin.demarteau@liege.be>
Reviewed By:  michaelo, jorton, rpluem
Github: closes #644



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934900 13f79535-47bb-0310-9956-ffa450edef68
2026-06-02 17:13:55 +00:00
Eric Covener
67003f03e7 Merge r1934852 from trunk:
expr parse fail should hide conditional content

these are neither true or false, the enclosing content should not
be printed


Submitted by: covener
Reviewed by: covener, jorton, rpluem

Github: closes #658


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934899 13f79535-47bb-0310-9956-ffa450edef68
2026-06-02 17:11:08 +00:00
Joe Orton
dc5bf17873 Merge r1934594, r1934597 from trunk:
memchr() takes a char * as a first parameter, and 'buf' is a const char *.

This breaks build process at least with gcc 16.1.1 and maintainer-mode enabled.

Without maintainer-mode, only a warning is generated.

strchr() takes a char * as a first parameter, and in the cases a const char * is passed.

This breaks build process at least with gcc 16.1.1 and maintainer-mode enabled.

Without maintainer-mode, only a warning is generated.

Submitted by: jailletc36
Reviewed by: jailletc36, jim, jorton


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1934885 13f79535-47bb-0310-9956-ffa450edef68
2026-06-02 13:55:21 +00:00