ngtcp2: proper handling of uint64_t when adjusting send buffer
No binary (build failed)
—
$ git checkout -f 7ab94d7d57e2dde712bd900ff1b62b2afff970d7
Previous HEAD position was a64d7de61a RELEASE-NOTES: synced
HEAD is now at 7ab94d7d57 ngtcp2: proper handling of uint64_t when adjusting send buffer
$ git clean -fdx
Removing Makefile.in
Removing aclocal.m4
Removing autom4te.cache/
Removing compile
Removing confdefs.h
Removing config.guess
Removing config.log
Removing config.sub
Removing configure
Removing conftest.c
Removing depcomp
Removing docs/Makefile.in
Removing docs/cmdline-opts/Makefile.in
Removing docs/examples/Makefile.in
Removing docs/libcurl/Makefile.in
Removing docs/libcurl/opts/Makefile.in
Removing include/Makefile.in
Removing include/curl/Makefile.in
Removing install-sh
Removing lib/Makefile.in
Removing lib/curl_config.h.in
Removing ltmain.sh
Removing m4/libtool.m4
Removing m4/ltoptions.m4
Removing m4/ltsugar.m4
Removing m4/ltversion.m4
Removing m4/lt~obsolete.m4
Removing missing
Removing packages/Makefile.in
Removing packages/vms/Makefile.in
Removing run-compiler
Removing scripts/Makefile.in
Removing src/Makefile.in
Removing test-driver
Removing tests/Makefile.in
Removing tests/certs/Makefile.in
Removing tests/certs/scripts/Makefile.in
Removing tests/data/Makefile.in
Removing tests/http/Makefile.in
Removing tests/http/clients/Makefile.in
Removing tests/libtest/Makefile.in
Removing tests/server/Makefile.in
Removing tests/unit/Makefile.in
$ autoreconf -fi
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Remember to add 'LT_INIT' to configure.ac.
configure.ac:123: installing './compile'
configure.ac:439: installing './config.guess'
configure.ac:439: installing './config.sub'
configure.ac:123: installing './install-sh'
configure.ac:129: installing './missing'
docs/examples/Makefile.am: installing './depcomp'
parallel-tests: installing './test-driver'
$ bash -c find . -name config.guess -exec cp /usr/share/misc/config.guess {} \;
$ bash -c find . -name config.sub -exec cp /usr/share/misc/config.sub {} \;
$ chmod +x configure
$ ./configure --disable-shared --without-ssl --disable-docs
[TIMEOUT]
| @@ -1438,6 +1438,7 @@ static int cb_h3_acked_req_body(nghttp3_conn *conn, int64_t stream_id, | |
| struct Curl_cfilter *cf = user_data; | |
| struct Curl_easy *data = stream_user_data; | |
| struct stream_ctx *stream = H3_STREAM_CTX(data); | |
| + | size_t skiplen; |
| (void)cf; | |
| if(!stream) | |
| @@ -1445,9 +1446,12 @@ static int cb_h3_acked_req_body(nghttp3_conn *conn, int64_t stream_id, | |
| /* The server ackknowledged `datalen` of bytes from our request body. | |
| * This is a delta. We have kept this data in `sendbuf` for | |
| * re-transmissions and can free it now. */ | |
| - | Curl_bufq_skip(&stream->sendbuf, datalen); |
| - | DEBUGASSERT(stream->sendbuf_len_in_flight >= datalen); |
| - | stream->sendbuf_len_in_flight -= datalen; |
| + | if(datalen >= (uint64_t)stream->sendbuf_len_in_flight) |
| + | skiplen = stream->sendbuf_len_in_flight; |
| + | else |
| + | skiplen = (size_t)datalen; |
| + | Curl_bufq_skip(&stream->sendbuf, skiplen); |
| + | stream->sendbuf_len_in_flight -= skiplen; |
| /* `sendbuf` *might* now have more room. If so, resume this | |
| * possibly paused stream. And also tell our transfer engine that | |