summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-ftp/proftpd/files/proftpd-1.3.1_rc2-bug178866.patch')
-rw-r--r--net-ftp/proftpd/files/proftpd-1.3.1_rc2-bug178866.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/net-ftp/proftpd/files/proftpd-1.3.1_rc2-bug178866.patch b/net-ftp/proftpd/files/proftpd-1.3.1_rc2-bug178866.patch
new file mode 100644
index 000000000000..206ffb0d6384
--- /dev/null
+++ b/net-ftp/proftpd/files/proftpd-1.3.1_rc2-bug178866.patch
@@ -0,0 +1,68 @@
+--- src/auth.c 2007/04/17 21:33:40 1.48
++++ src/auth.c 2007/05/21 15:19:41 1.49
+@@ -442,6 +442,32 @@
+
+ cmd = make_cmd(p, 2, name, pw);
+
++ /* First, check for the mod_auth_pam.c module.
++ *
++ * PAM is a bit of hack in this Auth API, because PAM only provides
++ * yes/no checks, and is not a source of user information.
++ */
++ m = pr_module_get("mod_auth_pam.c");
++ if (m) {
++ pr_trace_msg(trace_channel, 4,
++ "using module 'mod_auth_pam.c' to authenticate user '%s'", name);
++
++ mr = dispatch_auth(cmd, "auth", &m);
++
++ if (MODRET_ISHANDLED(mr)) {
++ res = MODRET_HASDATA(mr) ? PR_AUTH_RFC2228_OK : PR_AUTH_OK;
++
++ if (cmd->tmp_pool) {
++ destroy_pool(cmd->tmp_pool);
++ cmd->tmp_pool = NULL;
++ }
++
++ return res;
++ }
++
++ m = NULL;
++ }
++
+ if (auth_tab) {
+
+ /* Fetch the specific module to be used for authenticating this user. */
+@@ -479,6 +505,32 @@
+
+ cmd = make_cmd(p, 3, cpw, name, pw);
+
++ /* First, check for the mod_auth_pam.c module.
++ *
++ * PAM is a bit of hack in this Auth API, because PAM only provides
++ * yes/no checks, and is not a source of user information.
++ */
++ m = pr_module_get("mod_auth_pam.c");
++ if (m) {
++ pr_trace_msg(trace_channel, 4,
++ "using module 'mod_auth_pam.c' to authenticate user '%s'", name);
++
++ mr = dispatch_auth(cmd, "auth", &m);
++
++ if (MODRET_ISHANDLED(mr)) {
++ res = MODRET_HASDATA(mr) ? PR_AUTH_RFC2228_OK : PR_AUTH_OK;
++
++ if (cmd->tmp_pool) {
++ destroy_pool(cmd->tmp_pool);
++ cmd->tmp_pool = NULL;
++ }
++
++ return res;
++ }
++
++ m = NULL;
++ }
++
+ if (auth_tab) {
+
+ /* Fetch the specific module to be used for authenticating this user. */