From: Amos Jeffries Date: Mon, 4 Mar 2013 20:08:47 +0000 (-0700) Subject: Fix authentication headers sent on peer digest requests X-Git-Tag: SQUID_3_3_3~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25eeabf6d1ada146b0bcaf72d7186ca5cacb6558;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 e399c3c4d6..6b0caf97f5 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);