From: Amos Jeffries Date: Sun, 3 Mar 2013 12:44:30 +0000 (-0700) Subject: Fix authentication headers sent on peer digest requests X-Git-Tag: SQUID_3_4_0_1~247 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8900034923d4933629e4785136f15fd2970e352e;p=thirdparty%2Fsquid.git Fix authentication headers sent on peer digest requests Cache digest fetches have been sending the cache_peer login= option value without sanitizing it for special-case values used internally by Squid. This causes authentication failure on peers which are checking user credentials. --- diff --git a/src/peer_digest.cc b/src/peer_digest.cc index 1e723329d2..e3792524ee 100644 --- a/src/peer_digest.cc +++ b/src/peer_digest.cc @@ -347,9 +347,14 @@ peerDigestRequest(PeerDigest * pd) req->header.putStr(HDR_ACCEPT, "text/html"); - if (p->login) + if (p->login && + p->login[0] != '*' && + strcmp(p->login, "PASS") != 0 && + strcmp(p->login, "PASSTHRU") != 0 && + strcmp(p->login, "NEGOTIATE") != 0 && + strcmp(p->login, "PROXYPASS") != 0) { xstrncpy(req->login, p->login, MAX_LOGIN_SZ); - + } /* create fetch state structure */ CBDATA_INIT_TYPE(DigestFetchState);