From: Tatsuhiro Tsujikawa Date: Thu, 24 Feb 2022 10:06:43 +0000 (+0900) Subject: ngtcp2: Reset dynbuf when it is fully drained X-Git-Tag: curl-7_82_0~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6e9373b5f4c9d945ec323a7357358ca51d4dfbf7;p=thirdparty%2Fcurl.git ngtcp2: Reset dynbuf when it is fully drained Reported-by: vl409 on github Fixes #7351 Closes #8504 --- diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS index 39a2995e6d..3ed5d5a137 100644 --- a/docs/KNOWN_BUGS +++ b/docs/KNOWN_BUGS @@ -159,7 +159,6 @@ problems may have been fixed or changed somewhat since this was written. 18. HTTP/3 18.1 If the HTTP/3 server closes connection during upload curl hangs 18.2 Uploading HTTP/3 files gets interrupted at certain file sizes - 18.4 Downloading with HTTP/3 produces broken files 18.6 HTTP/3 multipart POST with quiche fails 18.8 HTTP/3 does not support client certs 18.9 connection migration does not work @@ -1126,10 +1125,6 @@ problems may have been fixed or changed somewhat since this was written. See https://github.com/curl/curl/issues/6510 -18.4 Downloading with HTTP/3 produces broken files - - See https://github.com/curl/curl/issues/7351 - 18.6 HTTP/3 multipart POST with quiche fails https://github.com/curl/curl/issues/7125 diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c index 8c7fb81e34..aac092b8d2 100644 --- a/lib/vquic/ngtcp2.c +++ b/lib/vquic/ngtcp2.c @@ -1220,6 +1220,8 @@ static size_t drain_overflow_buffer(struct HTTP *stream) if(ncopy != overlen) /* make the buffer only keep the tail */ (void)Curl_dyn_tail(&stream->overflow, overlen - ncopy); + else + Curl_dyn_reset(&stream->overflow); } return ncopy; }