Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
e7b49ae
mod_remoteip: fix NULL dereference with PROXY v2 LOCAL command
notroj Jul 17, 2026
ac2deae
mod_ssl: fix NULL dereference in OCSP responder URI parsing
notroj Jul 17, 2026
4d8d051
mod_cern_meta: reject HTTP framing headers in metadata files
notroj Jul 17, 2026
a1f12b7
mod_ldap: fix race in LDAP URL cache child cache access
notroj Jul 17, 2026
b85e024
mod_ssl: fix set_challenge_creds() to return rv on failure
notroj Jul 17, 2026
62c9f8f
mod_substitute: reject overflow values in SubstituteMaxLineLength
notroj Jul 17, 2026
d1e04e6
mod_substitute: fix heap over-read in set_pattern() delimiter scanning
notroj Jul 17, 2026
56402b0
add caution about client influence and delims
covener Jul 17, 2026
0e8f7b0
Another candidate module to remove.
notroj Jul 17, 2026
5b9fe41
Use apr_isspace() instead of isspace() in cookie parsing
notroj Jul 17, 2026
510a607
Add sanity checks for slotmem size calculations:
notroj Jul 17, 2026
f14a28e
CI: Restrict workflow permissions to read-only content access.
notroj Jul 17, 2026
0b63cfb
Make the Python test suites more robust:
jimjag Jul 17, 2026
67535d1
fr doc XML file update.
Jul 18, 2026
94a8373
fr doc rebuild.
Jul 18, 2026
c9212ef
test: baseline the pytest suites on uv, drop the pip fallback
jimjag Jul 18, 2026
463d7ba
mod_remoteip: Validate v2 PROXY protocol address length
notroj Jul 20, 2026
844426d
Fill in APLOGNO() missed in r1936357.
notroj Jul 20, 2026
44da61d
add deprecated module status
covener Jul 20, 2026
9bddacf
PR68527: fixup_dir segfault with no content-type
covener Jul 20, 2026
8d949d2
protect as in r1936401
covener Jul 20, 2026
6117520
test/modules/proxy: Add test for uwsgi headers
ichristod Jul 21, 2026
ea21e77
fr doc XML files updates.
Jul 25, 2026
6b689ab
fr doc rebuild.
Jul 25, 2026
2747a04
Steal aplogno.
notroj Jul 31, 2026
5de6222
* modules/generators/cgi_common.h (cgi_read_stdout): Log an error
notroj Jul 31, 2026
9aaaf9f
mod_ssl: Add support for OpenSSL provider based certificate
minfrin Aug 3, 2026
7f9485f
Add declaration and docs for SSLCADNRequestURI directive.
minfrin Aug 4, 2026
e04ab90
Make sure crl_uri is merged at the same time as crl_file
minfrin Aug 4, 2026
63b7e40
Counters in modssl_ctx_uri_t should be unsigned.
minfrin Aug 4, 2026
e56d925
* test/pytest_suite: Import/translate gitignore from the svn:ignore o…
notroj Aug 4, 2026
611b6d9
* Makefile.in (check-all-pytest): New target: run both Python test
notroj Aug 4, 2026
4548849
* test/pytest_suite/apache_pytest/fpm.py (PhpFpm.generate_conf): Set
notroj Aug 4, 2026
1030dab
* test/pytest_suite/tests/t/ab/test_base.py (_ab_path): Don't
notroj Aug 4, 2026
b7acb42
* .gitignore: Ignore the "-ng" variants of support/ scripts. [skip ci]
notroj Aug 4, 2026
ee95322
* .github/workflows/linux.yml: Group the APR/APR-util version-variant
notroj Aug 4, 2026
eb8d08b
* .github/workflows/linux.yml: Add APR 1.7.x, APR-util 1.6.x job.
notroj Aug 4, 2026
2deea76
Rebuild docs.
minfrin Aug 4, 2026
97ee158
OpenBSD doesn't support connect() to INADDR_ANY and returns EINVAL (22),
bigio Aug 5, 2026
e203485
mod_ssl: Rename URI directives to follow the pattern SSLStoreURI
minfrin Aug 6, 2026
fdd6f7c
Rebuild docs.
minfrin Aug 6, 2026
763b50e
* test/pytest_suite/conftest.py (framework): Record error_log's size
notroj Aug 1, 2026
35e0163
* test/pyhttpd/env.py (has_h2load): Verify h2load actually resolves,
notroj Aug 1, 2026
88442f0
test/modules/aaa: Add a pytest suite for mod_auth_digest.
notroj Aug 1, 2026
b18d68b
Consolidate Linux CI's pytest-based test running into TEST_PYTEST.
notroj Aug 1, 2026
8204882
* .github/workflows/linux.yml: Install uv via pipx, not apt: uv isn't
notroj Aug 1, 2026
3fa3dd6
* .github/workflows/linux.yml: Set TEST_PYTEST=1 for the UBSan, ASan,
notroj Aug 1, 2026
c11dfa1
* test/pytest_suite/.gitignore: Ignore generated .htaccess files,
notroj Aug 1, 2026
df3fb92
* test/pytest_suite/apache_pytest/config.py (_build_vars): Add
notroj Aug 1, 2026
9a0a827
* modules/ssl/ssl_engine_init.c (ssl_init_ctx_crl): Remove unused
notroj Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 63 additions & 56 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ on:
- '**.md'
- changes-entries/*

permissions:
contents: read

env:
MARGS: "-j2"
CFLAGS: "-g"
Expand Down Expand Up @@ -95,6 +98,26 @@ jobs:
APU_VERSION=1.6.3
APU_CONFIG="--with-crypto --with-ldap"
# -------------------------------------------------------------------------
- name: APR 1.7.6, APR-util 1.6.3, LDAP
config: --enable-mods-shared=reallyall
pkgs: ldap-utils
env: |
APR_VERSION=1.7.6
APU_VERSION=1.6.3
APU_CONFIG="--with-crypto --with-ldap"
TEST_MALLOC=1
TEST_LDAP=1
TEST_ARGS="-defines LDAP"
TESTS="t/modules/"
# -------------------------------------------------------------------------
- name: APR 1.7.x, APR-util 1.6.x
config: --enable-mods-shared=reallyall
env: |
APR_VERSION=1.7.x
APU_VERSION=1.6.x
APU_CONFIG="--with-crypto --with-ldap"
CLEAR_CACHE=1
# -------------------------------------------------------------------------
- name: APR 1.8.x, APR-util 1.7.x
config: --enable-mods-shared=reallyall
env: |
Expand All @@ -103,6 +126,25 @@ jobs:
APU_CONFIG="--with-crypto --with-ldap"
CLEAR_CACHE=1
# -------------------------------------------------------------------------
- name: APR 1.7.x, APR-util 1.7.x, LDAP
config: --enable-mods-shared=reallyall
pkgs: ldap-utils
env: |
APR_VERSION=1.7.x
APU_VERSION=1.7.x
APU_CONFIG="--with-crypto --with-ldap"
TEST_MALLOC=1
TEST_LDAP=1
TEST_ARGS="-defines LDAP"
TESTS="t/modules/"
CLEAR_CACHE=1
# -------------------------------------------------------------------------
- name: APR trunk thread debugging
config: --enable-mods-shared=reallyall --with-mpm=event
env: |
APR_VERSION=trunk
APR_CONFIG="--with-crypto --enable-thread-debug"
# -------------------------------------------------------------------------
- name: Pool-debug
config: --enable-mods-shared=reallyall
env: |
Expand Down Expand Up @@ -171,94 +213,52 @@ jobs:
BUILDCONFIG="--with-regen-expr"
MFLAGS=
# -------------------------------------------------------------------------
- name: APR 1.7.6, APR-util 1.6.3, LDAP
config: --enable-mods-shared=reallyall
pkgs: ldap-utils
env: |
APR_VERSION=1.7.6
APU_VERSION=1.6.3
APU_CONFIG="--with-crypto --with-ldap"
TEST_MALLOC=1
TEST_LDAP=1
TEST_ARGS="-defines LDAP"
TESTS="t/modules/"
# -------------------------------------------------------------------------
- name: APR 1.7.x, APR-util 1.7.x, LDAP
config: --enable-mods-shared=reallyall
pkgs: ldap-utils
env: |
APR_VERSION=1.7.x
APU_VERSION=1.7.x
APU_CONFIG="--with-crypto --with-ldap"
TEST_MALLOC=1
TEST_LDAP=1
TEST_ARGS="-defines LDAP"
TESTS="t/modules/"
CLEAR_CACHE=1
# -------------------------------------------------------------------------
### TODO: if: *condition_not_24x
- name: APR trunk thread debugging
config: --enable-mods-shared=reallyall --with-mpm=event
env: |
APR_VERSION=trunk
APR_CONFIG="--with-crypto --enable-thread-debug"
# -------------------------------------------------------------------------
- name: UBSan
notest-cflags: -fsanitize=undefined -fno-sanitize-recover=undefined
config: --enable-mods-shared=reallyall --disable-http2
env: |
NOTEST_LIBS=-lubsan
TEST_UBSAN=1
TEST_PYTEST=1
# -------------------------------------------------------------------------
- name: ASan
notest-cflags: -ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer
config: --enable-mods-shared=reallyall
pkgs: nghttp2-client
env: |
APR_VERSION=1.7.x
APU_VERSION=1.7.x
APU_CONFIG="--with-crypto --with-ldap"
TEST_ASAN=1
TEST_PYTEST=1
CLEAR_CACHE=1
# -------------------------------------------------------------------------
- name: ASan, pool-debug
notest-cflags: -ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer
config: --enable-mods-shared=reallyall
pkgs: nghttp2-client
env: |
APR_VERSION=1.7.x
APR_CONFIG="--enable-pool-debug"
APU_VERSION=1.7.x
APU_CONFIG="--with-crypto --with-ldap"
TEST_ASAN=1
TEST_PYTEST=1
CLEAR_CACHE=1
# -------------------------------------------------------------------------
- name: HTTP/2 test suite
# Runs every pytest-based test suite (pytest_suite/ + all
# test/modules/*/ pyhttpd suites except modules/md, which needs a
# local ACME/pebble server that isn't available here) via `make
# check-all-pytest`. See TEST_PYTEST in test/travis_run_linux.sh.
- name: Python pytest test suites
config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=all
pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests python3-multipart python3-filelock python3-websockets
pkgs: nghttp2-client
env: |
APR_VERSION=1.7.6
APU_VERSION=1.6.3
APU_CONFIG="--with-crypto"
NO_TEST_FRAMEWORK=1
TEST_INSTALL=1
TEST_H2=1
TEST_CORE=1
TEST_PROXY=1
# -------------------------------------------------------------------------
### TODO: if: *condition_not_24x
### TODO: pebble install is broken.
# - name: ACME test suite
# config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event
# pkgs: >-
# python3-pytest nghttp2-client python3-cryptography python3-requests python3-filelock
# golang-1.17 curl
# env: |
# APR_VERSION=1.7.6
# APU_VERSION=1.6.3
# APU_CONFIG="--with-crypto"
# GOROOT=/usr/lib/go-1.17
# NO_TEST_FRAMEWORK=1
# TEST_INSTALL=1
# TEST_MD=1
TEST_PYTEST=1
# -------------------------------------------------------------------------
### TODO: if: *condition_not_24x
- name: Configured w/reduced exports
Expand Down Expand Up @@ -355,9 +355,9 @@ jobs:
- name: Install prerequisites
run: sudo apt-get install -o Acquire::Retries=5
cpanminus libtool-bin libapr1-dev libaprutil1-dev
liblua5.3-dev libbrotli-dev libcurl4-openssl-dev
liblua5.3-dev libbrotli-dev libcurl4-openssl-dev
libnghttp2-dev libjansson-dev libpcre2-dev gdb
perl-doc libsasl2-dev ${{ matrix.pkgs }} check
perl-doc libsasl2-dev curl pipx ${{ matrix.pkgs }} check
- uses: actions/checkout@v6
- uses: actions/checkout@v6
with:
Expand All @@ -384,6 +384,11 @@ jobs:
name: config.log-${{ env.JOBID }}
path: |
/home/runner/build/**/config.log
- name: Install uv
if: env.TEST_PYTEST == '1'
run: |
pipx install uv
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Build and test
run: ./test/travis_run_linux.sh
- uses: actions/upload-artifact@v7
Expand All @@ -393,3 +398,5 @@ jobs:
path: |
**/config.log
test/perl-framework/t/logs/error_log
test/pytest_suite/t/logs/error_log
test/gen/apache/logs/error_log
3 changes: 3 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ on:
- '**.md'
- changes-entries/*

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -337,14 +337,19 @@ Release
/support/logresolve
/support/ab
/support/apxs
/support/apxs-ng
/support/apachectl
/support/checkgid
/support/dbmmanage
/support/dbmmanage-ng
/support/envvars-std
/support/log_server_status
/support/log_server_status-ng
/support/logresolve.pl
/support/split-logfile
/support/split-logfile-ng
/support/phf_abuse_log.cgi
/support/phf_abuse_log-ng.cgi
/support/httxt2dbm
/support/fcgistarter
/support/firehose
Expand Down
3 changes: 3 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.1

* mod_ssl: Add support for OpenSSL provider based certificate
stores. [Graham Leggett]

*) mod_proxy_beacon: Back-end reverse proxy servers can announce
themselves and be auto-added to their front-end proxy balancer.
[Jim Jagielski]
Expand Down
5 changes: 4 additions & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ DISTCLEAN_TARGETS = include/ap_config_auto.h include/ap_config_layout.h \
build/pkg/pkginfo build/config_vars.sh bsd_converted
EXTRACLEAN_TARGETS = configure include/ap_config_auto.h.in generated_lists \
httpd.spec
PHONY_TARGETS := check check-conf check-dirs check-include unittest-objdir
PHONY_TARGETS := check check-conf check-dirs check-include check-pytest check-all-pytest unittest-objdir

TESTS =
TEST_CONFIG =
Expand Down Expand Up @@ -495,6 +495,9 @@ check/modules/stamp: build/config_vars.mk
check-pytest: check-tree check/bin/apachectl check/config.ini check/modules/stamp
PYHTTPD_CONFIG=$(top_builddir)/check/config.ini $(PYTEST3) $(PYTEST_DIRS)

check-all-pytest: check-tree check/bin/apachectl check/config.ini check/modules/stamp
PYHTTPD_CONFIG=$(top_builddir)/check/config.ini $(SHELL) $(top_srcdir)/test/run-all-tests.sh --apxs "$(top_builddir)/check/bin/apxs"

# Runs all configured/available test targets.
check: $(CHECK_TARGETS)

Expand Down
1 change: 1 addition & 0 deletions STATUS
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ THINGS THAT SHOULD BE CONSIDERED EARLY IN THE 2.6/3.0 DEVELOPMENT CYCLE:
* Candidates to remove:
- mod_access_compat
- mod_imagemap
- mod_cern_meta
- mod_privileges
- mod_noloris
- mod_ssl_ct
Expand Down
2 changes: 2 additions & 0 deletions changes-entries/cern-meta-header-injection.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_cern_meta: Reject HTTP framing headers in metadata files to prevent
response splitting. [Joe Orton]
2 changes: 2 additions & 0 deletions changes-entries/ldap-url-cache-uaf.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_ldap: Fix intermittent worker crashes under concurrent
LDAP-authenticated requests. [Joe Orton]
2 changes: 2 additions & 0 deletions changes-entries/pr68527.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_dir: Fix a crash in fixup_dir for a request not mapped to any type.
PR68527. [Eric Covener]
2 changes: 2 additions & 0 deletions changes-entries/remoteip-proxy-v2-local.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_remoteip: Fix crash with PROXY v2 LOCAL command and
RemoteIPProxyProtocol enabled. [Joe Orton]
2 changes: 2 additions & 0 deletions changes-entries/substitute-maxlinelength-overflow.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_substitute: Fix SubstituteMaxLineLength to reject values too
large for the K/M/G suffix. [Joe Orton]
2 changes: 2 additions & 0 deletions changes-entries/substitute-pattern-oob-read.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) mod_substitute: Fix crash or misbehaviour when loading a Substitute
directive with a missing closing delimiter. [Joe Orton]
2 changes: 1 addition & 1 deletion docs/log-message-tags/next-number
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10597
10618
Loading