From: Frédéric Lécaille Date: Thu, 18 Nov 2021 12:54:43 +0000 (+0100) Subject: MINOR: quic: Wrong value for version negotiation packet 'Unused' field X-Git-Tag: v2.5-dev15~10 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=ea78ee1adbedc1e13ce2433c3fcb04b877c3e281;p=haproxy-2.5.git MINOR: quic: Wrong value for version negotiation packet 'Unused' field The seven less significant bits of the first byte must be arbitrary. Without this fix, QUIC tracker "version_negotiation" test could not pass. --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 86c7ff8..6b45630 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -3551,8 +3551,10 @@ static int qc_send_version_negotiation(int fd, struct sockaddr_storage *addr, * header form * long header, fixed bit to 0 for Version Negotiation */ - buf[i++] = '\x80'; + if (RAND_bytes((unsigned char *)buf, 1) != 1) + return 1; + buf[i++] |= '\x80'; /* null version for Version Negotiation */ buf[i++] = '\x00'; buf[i++] = '\x00';