From: Roman Arutyunyan Date: Tue, 21 Apr 2020 14:11:49 +0000 (+0300) Subject: HTTP/3: fixed encoding variable-length integers. X-Git-Tag: release-1.25.0~4^2~760 X-Git-Url: http://git.kaiwu.me/sitemap.xml?a=commitdiff_plain;h=400eb1b628;p=nginx.git HTTP/3: fixed encoding variable-length integers. --- diff --git a/src/http/v3/ngx_http_v3.c b/src/http/v3/ngx_http_v3.c index cca84dbc1..f7f79b9f4 100644 --- a/src/http/v3/ngx_http_v3.c +++ b/src/http/v3/ngx_http_v3.c @@ -34,21 +34,25 @@ ngx_http_v3_encode_varlen_int(u_char *p, uint64_t value) if (value <= 1073741823) { if (p == NULL) { - return 3; + return 4; } - *p++ = 0x80 | (value >> 16); + *p++ = 0x80 | (value >> 24); + *p++ = (value >> 16); *p++ = (value >> 8); *p++ = value; return (uintptr_t) p; - } if (p == NULL) { - return 4; + return 8; } - *p++ = 0xc0 | (value >> 24); + *p++ = 0xc0 | (value >> 56); + *p++ = (value >> 48); + *p++ = (value >> 40); + *p++ = (value >> 32); + *p++ = (value >> 24); *p++ = (value >> 16); *p++ = (value >> 8); *p++ = value;