Hans Leidekker (@hans) commented about dlls/kerberos/krb5_ap.c:
params.context = context_handle->handle;
if (stream_idx == -1)
{
params.stream_length = 0;
params.stream = NULL;
params.token_length = message->pBuffers[token_idx].cbBuffer;
params.token = message->pBuffers[token_idx].pvBuffer;
}
else
{
if (!message->pBuffers[data_idx].pvBuffer)
{
message->pBuffers[data_idx].pvBuffer = RtlAllocateHeap( GetProcessHeap(), 0, KERBEROS_MAX_BUF );
if (!message->pBuffers[data_idx].pvBuffer) return STATUS_NO_MEMORY;
message->pBuffers[data_idx].cbBuffer = KERBEROS_MAX_BUF;
KERBEROS_MAX_BUF is a misleading name, it's actually the maximum token size. I think we can use stream buffer size here instead.