Index: subversion-1.8.8/subversion/mod_authz_svn/mod_authz_svn.c =================================================================== --- subversion-1.8.8.orig/subversion/mod_authz_svn/mod_authz_svn.c 2017-09-14 13:37:41.263845345 +0200 +++ subversion-1.8.8/subversion/mod_authz_svn/mod_authz_svn.c 2017-09-14 13:49:42.254877410 +0200 @@ -966,19 +966,21 @@ #if USE_FORCE_AUTHN if (authn_configured) { /* We have to check to see if authn is required because if so we must - * return UNAUTHORIZED (401) rather than FORBIDDEN (403) since returning + * return DECLINED rather than FORBIDDEN (403) since returning * the 403 leaks information about what paths may exist to - * unauthenticated users. We must set a note here in order - * to use ap_some_authn_rquired() without triggering an infinite - * loop since the call will trigger this function to be called again. */ + * unauthenticated users. Returning DECLINED means apache's request + * handling will continue until the authn module itself generates + * UNAUTHORIZED (401). + + * We must set a note here in order to use + * ap_some_authn_rquired() without triggering an infinite + * loop since the call will trigger this function to be + * called again. */ apr_table_setn(r->notes, IN_SOME_AUTHN_NOTE, (const char*)1); authn_required = ap_some_authn_required(r); apr_table_unset(r->notes, IN_SOME_AUTHN_NOTE); if (authn_required) - { - ap_note_auth_failure(r); - return HTTP_UNAUTHORIZED; - } + return DECLINED; } #else if (!ap_some_auth_required(r))