summaryrefslogtreecommitdiffstats
path: root/httpd-2.2.0-authnoprov.patch
diff options
context:
space:
mode:
Diffstat (limited to 'httpd-2.2.0-authnoprov.patch')
-rw-r--r--httpd-2.2.0-authnoprov.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/httpd-2.2.0-authnoprov.patch b/httpd-2.2.0-authnoprov.patch
new file mode 100644
index 0000000..c9cfe8b
--- /dev/null
+++ b/httpd-2.2.0-authnoprov.patch
@@ -0,0 +1,30 @@
+--- httpd-2.2.0/modules/aaa/mod_authn_file.c.authnoprov
++++ httpd-2.2.0/modules/aaa/mod_authn_file.c
+@@ -70,6 +70,10 @@
+ apr_status_t status;
+ char *file_password = NULL;
+
++ if (!conf->pwfile) {
++ return AUTH_GENERAL_ERROR;
++ }
++
+ status = ap_pcfg_openfile(&f, r->pool, conf->pwfile);
+
+ if (status != APR_SUCCESS) {
+--- httpd-2.2.0/modules/aaa/mod_auth_basic.c.authnoprov
++++ httpd-2.2.0/modules/aaa/mod_auth_basic.c
+@@ -252,6 +252,14 @@
+ return DECLINED;
+ }
+
++ /* If no providers were configured, and the default file
++ * provider gave a general error (which will happen only if
++ * has not been configured), presume that a non-provider-based
++ * authn module is configured, and get out of the way. */
++ if (!conf->providers && auth_result == AUTH_GENERAL_ERROR) {
++ return DECLINED;
++ }
++
+ switch (auth_result) {
+ case AUTH_DENIED:
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,