http_negotiate: allow for a one byte larger channel binding buffer

The channel binding data dynbuf was not set correctly making it fail with
CURLE_TOO_LARGE too easily.

Reported-by: galen11 on github
Fixes #15685
Closes #15694
This commit is contained in:
Daniel Stenberg 2024-12-05 18:24:45 +01:00
parent b6aecd4a98
commit 6755ba593c
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -110,7 +110,7 @@ CURLcode Curl_input_negotiate(struct Curl_easy *data, struct connectdata *conn,
/* Check if the connection is using SSL and get the channel binding data */
#if defined(USE_SSL) && defined(HAVE_GSSAPI)
if(conn->handler->flags & PROTOPT_SSL) {
Curl_dyn_init(&neg_ctx->channel_binding_data, SSL_CB_MAX_SIZE);
Curl_dyn_init(&neg_ctx->channel_binding_data, SSL_CB_MAX_SIZE + 1);
result = Curl_ssl_get_channel_binding(
data, FIRSTSOCKET, &neg_ctx->channel_binding_data);
if(result) {