* modules/aaa/mod_auth_digest.c: Don't let a client_entry pointer #2077
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Linux | |
| on: | |
| push: | |
| branches: [ "*" ] | |
| paths-ignore: | |
| - 'docs/**' | |
| - STATUS | |
| - CHANGES | |
| - README* | |
| - '**.md' | |
| - changes-entries/* | |
| tags: | |
| - 2.* | |
| pull_request: | |
| branches: [ "trunk", "2.4.x" ] | |
| paths-ignore: | |
| - 'docs/**' | |
| - STATUS | |
| - CHANGES | |
| - README* | |
| - '**.md' | |
| - changes-entries/* | |
| permissions: | |
| contents: read | |
| env: | |
| MARGS: "-j2" | |
| CFLAGS: "-g" | |
| # This will need updating as the ubuntu-latest image changes: | |
| PHP_FPM: "/usr/sbin/php-fpm8.3" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # ------------------------------------------------------------------------- | |
| - name: Empty APLOGNO() test | |
| env: | | |
| SKIP_TESTING=1 | |
| TEST_LOGNO=1 | |
| # ------------------------------------------------------------------------- | |
| - name: Default | |
| # ------------------------------------------------------------------------- | |
| - name: All-static modules | |
| config: --enable-mods-static=reallyall | |
| # ------------------------------------------------------------------------- | |
| - name: Prefork MPM, all-modules (except cgid) | |
| config: --enable-mods-shared=reallyall --with-mpm=prefork --disable-cgid | |
| # ------------------------------------------------------------------------- | |
| - name: Worker MPM, all-modules | |
| config: --enable-mods-shared=reallyall --with-mpm=worker | |
| # ------------------------------------------------------------------------- | |
| - name: Shared MPMs, all-modules | |
| config: --enable-mods-shared=reallyall --enable-mpms-shared=all | |
| # ------------------------------------------------------------------------- | |
| - name: Shared MPMs, all-modules, 64-bit ARM | |
| config: --enable-mods-shared=reallyall --enable-mpms-shared=all | |
| os: ubuntu-24.04-arm | |
| # ------------------------------------------------------------------------- | |
| - name: Event MPM, all-modules, mod_cgid only | |
| config: --enable-mods-shared=reallyall --with-mpm=event --disable-cgi | |
| # ------------------------------------------------------------------------- | |
| - name: Event MPM, all-modules, no CMSG_DATA | |
| config: --enable-mods-shared=reallyall --with-mpm=event ac_cv_have_decl_CMSG_DATA=no | |
| # ------------------------------------------------------------------------- | |
| - name: Default, all-modules + install | |
| config: --enable-mods-shared=reallyall | |
| env: | | |
| TEST_INSTALL=1 | |
| APACHE_TEST_EXTRA_ARGS=-v | |
| # ------------------------------------------------------------------------- | |
| - name: Default, all-modules, random test order | |
| config: --enable-mods-shared=reallyall | |
| env: | | |
| TEST_ARGS=-order=random | |
| # ------------------------------------------------------------------------- | |
| - name: GCC 12 maintainer-mode w/-Werror, install + VPATH | |
| config: --enable-mods-shared=reallyall --enable-maintainer-mode | |
| notest-cflags: -Werror -O2 | |
| env: | | |
| CC=gcc-12 | |
| TEST_VPATH=1 | |
| TEST_INSTALL=1 | |
| SKIP_TESTING=1 | |
| # ------------------------------------------------------------------------- | |
| - name: All-modules, APR 1.7.6, APR-util 1.6.5 | |
| config: --enable-mods-shared=reallyall | |
| env: | | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--with-crypto --with-ldap" | |
| # ------------------------------------------------------------------------- | |
| - name: APR 1.7.6, APR-util 1.6.5, LDAP | |
| config: --enable-mods-shared=reallyall | |
| pkgs: ldap-utils | |
| env: | | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| 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: | | |
| APR_VERSION=1.8.x | |
| APU_VERSION=1.7.x | |
| 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: | | |
| APR_VERSION=1.7.x | |
| APR_CONFIG="--enable-pool-debug" | |
| APU_VERSION=1.7.x | |
| APU_CONFIG="--with-crypto --with-ldap" | |
| TEST_MALLOC=1 | |
| CLEAR_CACHE=1 | |
| # ------------------------------------------------------------------------- | |
| - name: Shared MPMs (event), pool-debug, SSL/TLS variants | |
| config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=event | |
| env: | | |
| APR_VERSION=1.7.x | |
| APR_CONFIG="--enable-pool-debug" | |
| APU_VERSION=1.7.x | |
| APU_CONFIG="--with-crypto --with-ldap" | |
| TEST_MALLOC=1 | |
| TEST_SSL=1 | |
| CLEAR_CACHE=1 | |
| # ------------------------------------------------------------------------- | |
| - name: Shared MPMs (worker), pool-debug, SSL/TLS variants | |
| config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=worker | |
| env: | | |
| APR_VERSION=1.7.x | |
| APR_CONFIG="--enable-pool-debug" | |
| APU_VERSION=1.7.x | |
| APU_CONFIG="--with-crypto --with-ldap" | |
| TEST_MALLOC=1 | |
| TEST_SSL=1 | |
| CLEAR_CACHE=1 | |
| # ------------------------------------------------------------------------- | |
| - name: Shared MPMs (prefork), pool-debug, SSL/TLS variants | |
| config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=prefork | |
| env: | | |
| APR_VERSION=1.7.x | |
| APR_CONFIG="--enable-pool-debug" | |
| APU_VERSION=1.7.x | |
| APU_CONFIG="--with-crypto --with-ldap" | |
| TEST_MALLOC=1 | |
| TEST_SSL=1 | |
| CLEAR_CACHE=1 | |
| # ------------------------------------------------------------------------- | |
| - name: litmus WebDAV tests | |
| config: --enable-dav --enable-dav-fs | |
| env: | | |
| LITMUS=1 | |
| TESTS="t/modules/dav.t" | |
| pkgs: litmus | |
| # ------------------------------------------------------------------------- | |
| - name: litmus WebDAV tests, APR trunk, LMDB | |
| config: --enable-dav --enable-dav-fs | |
| pkgs: litmus liblmdb-dev | |
| env: | | |
| APR_VERSION=trunk | |
| APR_CONFIG="--with-lmdb --with-dbm=lmdb" | |
| LITMUS=1 | |
| TESTS="t/modules/dav.t" | |
| # ------------------------------------------------------------------------- | |
| # MFLAGS= works around https://bz.apache.org/bugzilla/show_bug.cgi?id=63942 | |
| ## TODO if: *condition_not_24x | |
| - name: Regenerate ap_expr | |
| config: --enable-mods-shared=reallyall --enable-maintainer-mode | |
| notest-cflags: -Werror -Wno-deprecated-declarations | |
| env: | | |
| BUILDCONFIG="--with-regen-expr" | |
| MFLAGS= | |
| # ------------------------------------------------------------------------- | |
| - 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 | |
| # ------------------------------------------------------------------------- | |
| # 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: nghttp2-client | |
| env: | | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--with-crypto" | |
| NO_TEST_FRAMEWORK=1 | |
| TEST_PYTEST=1 | |
| # ------------------------------------------------------------------------- | |
| ### TODO: if: *condition_not_24x | |
| - name: Configured w/reduced exports | |
| config: --enable-reduced-exports --enable-maintainer-mode --enable-systemd | |
| pkgs: libsystemd-dev | |
| env: | | |
| SKIP_TESTING=1 | |
| TEST_INSTALL=1 | |
| # ------------------------------------------------------------------------- | |
| ### TODO if: *condition_not_24x | |
| ### TODO: Fails because :i386 packages are not being found. | |
| # - name: i386 Shared MPMs, most modules, maintainer-mode w/-Werror | |
| # config: --enable-mods-shared=reallyall --disable-xml2enc --disable-proxy-html --enable-mpms-shared=all --enable-maintainer-mode | |
| # pkgs: >- | |
| # cpanminus libc6-dev-i386 gcc-multilib libexpat1-dev:i386 libssl-dev:i386 | |
| # lib32z1-dev libbrotli-dev:i386 libpcre2-dev:i386 libldap2-dev:i386 libtool-bin | |
| # perl-doc libapr1-dev libbrotli-dev:i386 | |
| # env: | | |
| # PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig" | |
| # NOTEST_CFLAGS="-Werror" | |
| # CC="gcc -m32" | |
| # APR_VERSION=1.7.0 | |
| # APU_VERSION=1.6.5 | |
| # APU_CONFIG="--with-crypto --with-ldap" | |
| # ------------------------------------------------------------------------- | |
| - name: OpenSSL 3.0 LTS | |
| config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto | |
| env: | | |
| TEST_OPENSSL3=3.0.21 | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--without-crypto" | |
| pkgs: subversion | |
| # ------------------------------------------------------------------------- | |
| - name: OpenSSL 3.4 -Werror | |
| config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto | |
| notest-cflags: -Werror -O2 | |
| env: | | |
| TEST_OPENSSL3=3.4.6 | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--without-crypto" | |
| pkgs: subversion | |
| # ------------------------------------------------------------------------- | |
| - name: OpenSSL 3.4 no-engine | |
| config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto | |
| env: | | |
| TEST_OPENSSL3=3.4.6 | |
| OPENSSL_CONFIG=no-engine | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--without-crypto" | |
| pkgs: subversion | |
| # ------------------------------------------------------------------------- | |
| - name: OpenSSL 3.5 no-engine -Werror | |
| config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto | |
| notest-cflags: -Werror -O2 | |
| env: | | |
| TEST_OPENSSL3=3.5.7 | |
| OPENSSL_CONFIG=no-engine | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--without-crypto" | |
| pkgs: subversion | |
| # ------------------------------------------------------------------------- | |
| - name: OpenSSL 4.0 | |
| config: --enable-mods-shared=most --enable-maintainer-mode --disable-md --disable-http2 --disable-ldap --disable-crypto | |
| notest-cflags: -Werror -O2 | |
| env: | | |
| TEST_OPENSSL3=4.0.1 | |
| OPENSSL_CONFIG= | |
| APR_VERSION=1.7.6 | |
| APU_VERSION=1.6.5 | |
| APU_CONFIG="--without-crypto" | |
| pkgs: subversion | |
| # ------------------------------------------------------------------------- | |
| runs-on: ${{ matrix.os == '' && 'ubuntu-latest' || matrix.os }} | |
| timeout-minutes: 30 | |
| env: | |
| NOTEST_CFLAGS: ${{ matrix.notest-cflags }} | |
| CONFIG: ${{ matrix.config }} | |
| name: ${{ matrix.name }} | |
| steps: | |
| # JOBID is used in the cache keys, created here as a hash of all | |
| # properties of the environment, including the image OS version, | |
| # compiler flags and any job-specific properties. | |
| - name: Set environment variables | |
| run: | | |
| echo "${{ matrix.env }}" >> $GITHUB_ENV | |
| echo JOBID=`echo "OS=$ImageOS ${{ matrix.notest-cflags }} ${{ matrix.env }} ${{ matrix.config }}" \ | |
| | md5sum - | sed 's/ .*//'` >> $GITHUB_ENV | |
| - name: apt refresh | |
| run: sudo apt-get -o Acquire::Retries=5 update | |
| - 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 | |
| libnghttp2-dev libjansson-dev libpcre2-dev gdb | |
| perl-doc libsasl2-dev curl pipx ${{ matrix.pkgs }} check | |
| - uses: actions/checkout@v6 | |
| - uses: actions/checkout@v6 | |
| with: | |
| repository: apache/httpd-tests | |
| path: test/perl-framework | |
| submodules: true | |
| if: ${{ ! ( env.SKIP_TESTING || env.NO_TEST_FRAMEWORK ) }} | |
| - name: Cache installed libraries | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/root | |
| key: cache-libs-${{ env.JOBID }} | |
| - name: Cache CPAN modules | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/perl5 | |
| key: cache-cpan-${{ env.JOBID }} | |
| - name: Configure environment | |
| run: ./test/travis_before_linux.sh | |
| timeout-minutes: 15 | |
| - uses: actions/upload-artifact@v7 | |
| if: failure() | |
| with: | |
| 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 | |
| if: failure() | |
| with: | |
| name: error_log-${{ env.JOBID }} | |
| path: | | |
| **/config.log | |
| test/perl-framework/t/logs/error_log | |
| test/pytest_suite/t/logs/error_log | |
| test/gen/apache/logs/error_log |