]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: Wrong value for version negotiation packet 'Unused' field
authorFrédéric Lécaille <flecaille@haproxy.com>
Thu, 18 Nov 2021 12:54:43 +0000 (13:54 +0100)
committerFrédéric Lécaille <flecaille@haproxy.com>
Fri, 19 Nov 2021 13:37:35 +0000 (14:37 +0100)
The seven less significant bits of the first byte must be arbitrary.
Without this fix, QUIC tracker "version_negotiation" test could not pass.

src/xprt_quic.c

index 86c7ff84e8761adc92f6e722ad8b844dd0f23e12..6b4563051beb0d40b30060006d02bfc85de61695 100644 (file)
@@ -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';