]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
schannel: set ALPN length correctly for HTTP/2
authorJoel Depooter <joel.depooter@safe.com>
Thu, 27 May 2021 01:33:34 +0000 (18:33 -0700)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 27 May 2021 06:27:35 +0000 (08:27 +0200)
In a3268eca792f1 this code was changed to use the ALPN_H2 constant
instead of the NGHTTP2_PROTO_ALPN constant. However, these constants are
not the same. The nghttp2 constant included the length of the string,
like this: "\x2h2". The ALPN_H2 constant is just "h2". Therefore we need
to re-add the length of the string to the ALPN buffer.

Closes #7138

lib/vtls/schannel.c

index 2bcf11db2576748ed9502cec4de5357bc99b4449..3286a9e9fc0293fc2d06c6144dbb699a04bb3424 100644 (file)
@@ -874,6 +874,7 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
 
 #ifdef USE_HTTP2
     if(data->state.httpwant >= CURL_HTTP_VERSION_2) {
+      alpn_buffer[cur++] = ALPN_H2_LENGTH;
       memcpy(&alpn_buffer[cur], ALPN_H2, ALPN_H2_LENGTH);
       cur += ALPN_H2_LENGTH;
       infof(data, "schannel: ALPN, offering %s\n", ALPN_H2);