]> git.ipfire.org Git - thirdparty/squid.git/commit
Negotiate Kerberos authentication request size exceeds output buffer size.
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 16 Apr 2015 13:18:44 +0000 (16:18 +0300)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 16 Apr 2015 13:18:44 +0000 (16:18 +0300)
commitd0873e0c66fc9d874e8247d699348654cb069723
treef704ad20e53931c54dc059dbc4e753159c6620d1
parentb02a2ff8b6f2ced0f6d6d8491c5d5b75d46c63a1
Negotiate Kerberos authentication request size exceeds output buffer size.

Despite the "must match" comment, MAX_AUTHTOKEN_LEN in
auth/UserRequest.h got out of sync with similar constants in Negotiate helpers.
A 32KB buffer cannot fit some helper requests (e.g., those carrying Privilege
Account Certificate information in the client's Kerberos ticket). Each truncated
request blocks the negotiate helper channel, eventually causing helper queue
overflow and possibly killing Squid.

This patch increases MAX_AUTHTOKEN_LEN in UserRequest.h to 65535 which
is also the maximum used by the negotiate helpers. The patch also adds checks
to avoid sending truncated requests, treating them as helper errors instead.

This is a Measurement Factory project.
src/auth/UserRequest.h
src/auth/negotiate/UserRequest.cc
src/auth/ntlm/UserRequest.cc