summaryrefslogtreecommitdiff
path: root/debian/patches/85_server_set_id_SPA.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/85_server_set_id_SPA.diff')
-rw-r--r--debian/patches/85_server_set_id_SPA.diff73
1 files changed, 0 insertions, 73 deletions
diff --git a/debian/patches/85_server_set_id_SPA.diff b/debian/patches/85_server_set_id_SPA.diff
deleted file mode 100644
index 9648185..0000000
--- a/debian/patches/85_server_set_id_SPA.diff
+++ /dev/null
@@ -1,73 +0,0 @@
-From f68fe5f62128effcce35efca90d74bc6df066765 Mon Sep 17 00:00:00 2001
-From: Phil Pennock <pdp@exim.org>
-Date: Wed, 7 Nov 2012 01:53:37 -0500
-Subject: [PATCH] Fix server_set_id for SPA/NTLM auth.
-
-Broken in 4.80 release, commit 08488c86.
-
-We need to leave $auth1 available after the authenticator returns, so
-that server_set_id can be evaluated by the caller. We need to do this
-whether we succeed or fail, because server_set_id only makes it into
-$authenticated_id if we return OK, but is logged regardless.
-
-Updated test config to set server_set_id; updated logs.
----
-
-diff --git a/src/auths/spa.c b/src/auths/spa.c
-index 1abd657..0bf7b04 100644
---- a/src/auths/spa.c
-+++ b/src/auths/spa.c
-@@ -196,17 +196,14 @@ that causes failure if the size of msgbuf is exceeded. ****/
- /***************************************************************/
-
- /* Put the username in $auth1 and $1. The former is now the preferred variable;
--the latter is the original variable. */
-+the latter is the original variable. These have to be out of stack memory, and
-+need to be available once known even if not authenticated, for error messages
-+(server_set_id, which only makes it to authenticated_id if we return OK) */
-
--auth_vars[0] = expand_nstring[1] = msgbuf;
-+auth_vars[0] = expand_nstring[1] = string_copy(msgbuf);
- expand_nlength[1] = Ustrlen(msgbuf);
- expand_nmax = 1;
-
--/* clean up globals which aren't referenced, but still shouldn't be left
--pointing to stack memory */
--#define CLEANUP_RETURN(Code) do { auth_vars[0] = expand_nstring[1] = NULL; \
-- expand_nlength[1] = expand_nmax = 0; return (Code); } while (0);
--
- debug_print_string(ablock->server_debug_string); /* customized debug */
-
- /* look up password */
-@@ -218,13 +215,13 @@ if (clearpass == NULL)
- {
- DEBUG(D_auth) debug_printf("auth_spa_server(): forced failure while "
- "expanding spa_serverpassword\n");
-- CLEANUP_RETURN(FAIL);
-+ return FAIL;
- }
- else
- {
- DEBUG(D_auth) debug_printf("auth_spa_server(): error while expanding "
- "spa_serverpassword: %s\n", expand_string_message);
-- CLEANUP_RETURN(DEFER);
-+ return DEFER;
- }
- }
-
-@@ -240,13 +237,12 @@ if (memcmp(ntRespData,
- 24) == 0)
- /* success. we have a winner. */
- {
-- int rc = auth_check_serv_cond(ablock);
-- CLEANUP_RETURN(rc);
-+ return auth_check_serv_cond(ablock);
- }
-
- /* Expand server_condition as an authorization check (PH) */
-
--CLEANUP_RETURN(FAIL);
-+return FAIL;
- }
-
-