diff --git a/.github/workflows/autoconf.yml b/.github/workflows/autoconf.yml index 24e4c7772ab33..6e509c16de4ef 100644 --- a/.github/workflows/autoconf.yml +++ b/.github/workflows/autoconf.yml @@ -80,5 +80,11 @@ jobs: - name: Run tests run: make ${{matrix.check-target}} PARALLEL=16 APACHE_MPM=event + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: tests.log-${{ github.run_id }}-${{ github.run_attempt }} + path: tests.log + - name: Install (make install) run: sudo make install diff --git a/subversion/mod_dav_svn/mod_dav_svn.c b/subversion/mod_dav_svn/mod_dav_svn.c index 72f4470f62624..f674faa361fb7 100644 --- a/subversion/mod_dav_svn/mod_dav_svn.c +++ b/subversion/mod_dav_svn/mod_dav_svn.c @@ -781,6 +781,15 @@ const char * dav_svn__get_root_dir(request_rec *r) { dir_conf_t *conf; + const char *base; + +#if AP_MODULE_MAGIC_AT_LEAST(20211221, 28) + /* Inherit the root path from mod_dav's DavBasePath iff configured + where e.g. LocationMatch is used for the repos. */ + base = dav_get_base_path(r); + if (base) + return base; +#endif conf = ap_get_module_config(r->per_dir_config, &dav_svn_module); return conf->root_dir; @@ -1225,7 +1234,7 @@ static int dav_svn__translate_name(request_rec *r) else { /* Retrieve path to repo and within repo for the request */ - dav_error *err = dav_svn_split_uri(r, r->uri, conf->root_dir, + dav_error *err = dav_svn_split_uri(r, r->uri, dav_svn__get_root_dir(r), &ignore_cleaned_uri, &ignore_had_slash, &repos_basename, &ignore_relative_path, &repos_path);