]> git.ipfire.org Git - thirdparty/squid.git/commit
Negotiate Kerberos authentication request size exceeds output buffer size.
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Mon, 20 Apr 2015 02:46:43 +0000 (19:46 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 20 Apr 2015 02:46:43 +0000 (19:46 -0700)
commit5f67b4cd2a868b3fe6151de46c23621c0753e1fa
tree284008a8b6601e405c9537ae46f799b3fd2631c6
parent024f74b10191f0039ac2e909f380ccda1f062ed7
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