]> git.pld-linux.org Git - packages/squid.git/blob - squid-2.5.STABLE6-ntlm_noreuse_leak.patch
- sorted verify() flags
[packages/squid.git] / squid-2.5.STABLE6-ntlm_noreuse_leak.patch
1 Index: squid/src/auth/ntlm/auth_ntlm.c
2 diff -c squid/src/auth/ntlm/auth_ntlm.c:1.17.2.13 squid/src/auth/ntlm/auth_ntlm.c:1.17.2.14
3 *** squid/src/auth/ntlm/auth_ntlm.c:1.17.2.13   Sat Jul 17 10:05:53 2004
4 --- squid/src/auth/ntlm/auth_ntlm.c     Sat Jul 17 10:09:53 2004
5 ***************
6 *** 92,97 ****
7 --- 92,98 ----
8   
9   static hash_table *ntlm_challenge_cache = NULL;
10   
11 + static void authenticateNTLMReleaseServer(ntlm_request_t * ntlm_request);
12   /*
13    *
14    * Private Functions
15 ***************
16 *** 381,388 ****
17         xfree(ntlm_request->ntlmauthenticate);
18       if (ntlm_request->authserver != NULL) {
19         debug(29, 9) ("authenticateNTLMRequestFree: releasing server '%p'\n", ntlm_request->authserver);
20 !       helperStatefulReleaseServer(ntlm_request->authserver);
21 !       ntlm_request->authserver = NULL;
22       }
23       memPoolFree(ntlm_request_pool, ntlm_request);
24   }
25 --- 382,388 ----
26         xfree(ntlm_request->ntlmauthenticate);
27       if (ntlm_request->authserver != NULL) {
28         debug(29, 9) ("authenticateNTLMRequestFree: releasing server '%p'\n", ntlm_request->authserver);
29 !       authenticateNTLMReleaseServer(ntlm_request);
30       }
31       memPoolFree(ntlm_request_pool, ntlm_request);
32   }
33 ***************
34 *** 420,425 ****
35 --- 420,429 ----
36       helper_stateful_server *server = ntlm_request->authserver;
37       debug(29, 9) ("authenticateNTLMReleaseServer: releasing server '%p'\n", server);
38       ntlm_request->authserver = NULL;
39 +     if (!ntlmConfig->challengeuses) {
40 +       ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
41 +       helperstate->starve = 1;
42 +     }
43       helperStatefulReleaseServer(server);
44   }
45   
46 ***************
47 *** 429,435 ****
48   {
49       helper_stateful_server *server = ntlm_request->authserver;
50       ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
51 !     debug(29, 9) ("authenticateNTLMReleaseServer: releasing server '%p'\n", server);
52       ntlm_request->authserver = NULL;
53       helperstate->starve = 1;
54       helperStatefulReleaseServer(server);
55 --- 433,439 ----
56   {
57       helper_stateful_server *server = ntlm_request->authserver;
58       ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
59 !     debug(29, 9) ("authenticateNTLMResetServer: releasing server '%p'\n", server);
60       ntlm_request->authserver = NULL;
61       helperstate->starve = 1;
62       helperStatefulReleaseServer(server);
63 ***************
64 *** 692,698 ****
65             while ((server != NULL) && authenticateNTLMChangeChallenge_p(helperstate)) {
66                 /* flag this helper for challenge changing */
67                 helperstate->starve = 1;
68 !               helperStatefulReset(server);
69                 /* Get another server */
70                 server = helperStatefulGetServer(ntlmauthenticators);
71                 helperstate = server ? helperStatefulServerGetData(server) : NULL;
72 --- 696,702 ----
73             while ((server != NULL) && authenticateNTLMChangeChallenge_p(helperstate)) {
74                 /* flag this helper for challenge changing */
75                 helperstate->starve = 1;
76 !               helperStatefulReleaseServer(server);
77                 /* Get another server */
78                 server = helperStatefulGetServer(ntlmauthenticators);
79                 helperstate = server ? helperStatefulServerGetData(server) : NULL;
80 ***************
81 *** 727,732 ****
82 --- 731,738 ----
83                 helperStatefulSubmit(ntlmauthenticators, buf, authenticateNTLMHandleReply, r, ntlm_request->authserver);
84             }
85         } else {
86 +           if (!ntlmConfig->challengeuses)
87 +               debug(29, 0) ("authenticateNTLMStart: Reused challenge in server %p even if challenge reuse is disabled!", server);
88             /* (server != NULL and we have a valid challenge) */
89             /* TODO: turn the below into a function and call from here and handlereply */
90             /* increment the challenge uses */
This page took 0.093282 seconds and 3 git commands to generate.