curl/lib
Stefan Eissing c90a3f16b8
mime: avoid inifite loop in client reader
Curl_mime_read() may go into an infinite loop when called with buffer
lengths <= 4. Some encoders, like base64, are not prepared for that.

In the client reader for mime data, skip such small reads. The upload
buffers will get flushed eventually and larger reads will happen again.

Improves robustness of test652 which triggered the loop on blocked
sends.

Closes #14532
2024-08-15 10:16:55 +02:00
..
vauth spnego_gssapi: implement TLS channel bindings for openssl 2024-08-12 19:16:54 +02:00
vquic urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
vssh
vtls gnutls/wolfssl: improve error message when certificate fails 2024-08-14 11:47:01 +02:00
.checksrc
.gitattributes
.gitignore
altsvc.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
altsvc.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
amigaos.c
amigaos.h
arpa_telnet.h
asyn-ares.c
asyn-thread.c
asyn.h
base64.c
bufq.c websocket: introduce blocking sends 2024-08-12 19:19:28 +02:00
bufq.h websocket: introduce blocking sends 2024-08-12 19:19:28 +02:00
bufref.c
bufref.h
c-hyper.c hyper: call Curl_req_set_upload_done() 2024-08-14 11:34:05 +02:00
c-hyper.h
cf-h1-proxy.c
cf-h1-proxy.h
cf-h2-proxy.c http2: improved upload eos handling 2024-08-05 08:53:55 +02:00
cf-h2-proxy.h
cf-haproxy.c
cf-haproxy.h
cf-https-connect.c http2: improved upload eos handling 2024-08-05 08:53:55 +02:00
cf-https-connect.h
cf-socket.c
cf-socket.h
cfilters.c http2: improved upload eos handling 2024-08-05 08:53:55 +02:00
cfilters.h http2: improved upload eos handling 2024-08-05 08:53:55 +02:00
CMakeLists.txt cmake: sync up result variable names in Find modules 2024-08-14 14:58:58 +02:00
config-amigaos.h
config-dos.h
config-mac.h
config-os400.h
config-plan9.h
config-riscos.h cmake: more small tidy-ups and fixes 2024-08-08 13:48:28 +02:00
config-win32.h
config-win32ce.h
conncache.c hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
conncache.h
connect.c
connect.h
content_encoding.c
content_encoding.h
cookie.c
cookie.h
curl_addrinfo.c
curl_addrinfo.h
curl_base64.h
curl_config.h.cmake cmake: add rustls 2024-08-14 15:05:53 +02:00
curl_ctype.h
curl_des.c lib: fix building with wolfSSL without DES support 2024-08-13 09:28:27 +02:00
curl_des.h lib: fix building with wolfSSL without DES support 2024-08-13 09:28:27 +02:00
curl_endian.c
curl_endian.h
curl_fnmatch.c
curl_fnmatch.h
curl_get_line.c
curl_get_line.h
curl_gethostname.c
curl_gethostname.h
curl_gssapi.c
curl_gssapi.h
curl_hmac.h
curl_krb5.h
curl_ldap.h
curl_md4.h
curl_md5.h
curl_memory.h
curl_memrchr.c
curl_memrchr.h
curl_multibyte.c
curl_multibyte.h
curl_ntlm_core.c lib: fix building with wolfSSL without DES support 2024-08-13 09:28:27 +02:00
curl_ntlm_core.h
curl_path.c
curl_path.h
curl_printf.h
curl_range.c
curl_range.h
curl_rtmp.c
curl_rtmp.h
curl_sasl.c
curl_sasl.h
curl_setup_once.h
curl_setup.h lib: avoid macro collisions between wolfSSL and GnuTLS headers 2024-08-13 10:04:06 +02:00
curl_sha256.h lib: prefer CURL_SHA256_DIGEST_LENGTH over the unprefixed name 2024-08-13 10:04:06 +02:00
curl_sha512_256.c curl_sha512_256: fix symbol collisions with nettle library 2024-08-13 10:04:06 +02:00
curl_sha512_256.h curl_sha512_256: fix symbol collisions with nettle library 2024-08-13 10:04:06 +02:00
curl_sspi.c
curl_sspi.h
curl_threads.c
curl_threads.h
curl_trc.c smtp: add tracing feature 2024-08-14 11:51:55 +02:00
curl_trc.h smtp: add tracing feature 2024-08-14 11:51:55 +02:00
curlx.h
cw-out.c
cw-out.h
dict.c
dict.h
dllmain.c
doh.c urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
doh.h urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
dynbuf.c
dynbuf.h
dynhds.c
dynhds.h
easy_lock.h
easy.c build: silence C4232 MSVC warnings in vcpkg ngtcp2 builds 2024-08-13 09:28:27 +02:00
easygetopt.c
easyif.h
easyoptions.c
easyoptions.h
escape.c
escape.h
file.c
file.h
fileinfo.c
fileinfo.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
fopen.c
fopen.h
formdata.c
formdata.h
ftp.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
ftp.h
ftplistparser.c
ftplistparser.h
functypes.h
getenv.c
getinfo.c getinfo: add CURLINFO_POSTTRANSFER_TIME_T 2024-08-15 09:02:58 +02:00
getinfo.h
gopher.c
gopher.h
hash.c hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
hash.h hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
headers.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
headers.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
hmac.c
hostasyn.c
hostip4.c
hostip6.c
hostip.c hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
hostip.h
hostsyn.c
hsts.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
hsts.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
http1.c
http1.h
http2.c urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
http2.h
http_aws_sigv4.c lib: prefer CURL_SHA256_DIGEST_LENGTH over the unprefixed name 2024-08-13 10:04:06 +02:00
http_aws_sigv4.h
http_chunks.c
http_chunks.h
http_digest.c
http_digest.h
http_negotiate.c spnego_gssapi: implement TLS channel bindings for openssl 2024-08-12 19:16:54 +02:00
http_negotiate.h
http_ntlm.c
http_ntlm.h
http_proxy.c
http_proxy.h
http.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
http.h
idn.c idn: more strictly check AppleIDN errors 2024-08-07 14:59:07 +02:00
idn.h
if2ip.c lib: fix AIX build issues 2024-08-09 10:45:40 +02:00
if2ip.h
imap.c
imap.h
inet_ntop.c
inet_ntop.h
inet_pton.c
inet_pton.h
krb5.c krb5: fix -Wcast-align 2024-08-07 15:13:07 +02:00
ldap.c
libcurl.rc
libcurl.vers.in
llist.c llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
llist.h llist: remove direct struct accesses, use only functions 2024-08-12 13:18:10 +02:00
macos.c
macos.h
Makefile.am build: tidy up internal macro names for libcurl.pc 2024-08-12 14:56:41 +02:00
Makefile.inc
Makefile.mk Makefile.mk: fixup enabling libidn2 2024-08-06 22:33:05 +02:00
Makefile.soname
md4.c
md5.c
memdebug.c
memdebug.h lib: fix AIX build issues 2024-08-09 10:45:40 +02:00
mime.c mime: avoid inifite loop in client reader 2024-08-15 10:16:55 +02:00
mime.h
mprintf.c
mqtt.c
mqtt.h
multi.c hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
multihandle.h urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
multiif.h urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
netrc.c
netrc.h
nonblock.c
nonblock.h
noproxy.c
noproxy.h
openldap.c
optiontable.pl
parsedate.c
parsedate.h
pingpong.c ftp: flush pingpong before response 2024-08-08 17:52:25 +02:00
pingpong.h ftp: flush pingpong before response 2024-08-08 17:52:25 +02:00
pop3.c
pop3.h
progress.c getinfo: add CURLINFO_POSTTRANSFER_TIME_T 2024-08-15 09:02:58 +02:00
progress.h
psl.c
psl.h
rand.c
rand.h
rename.c
rename.h
request.c getinfo: add CURLINFO_POSTTRANSFER_TIME_T 2024-08-15 09:02:58 +02:00
request.h hyper: call Curl_req_set_upload_done() 2024-08-14 11:34:05 +02:00
rtsp.c
rtsp.h
select.c
select.h
sendf.c
sendf.h
setopt.c vtls: add SSLSUPP_CIPHER_LIST 2024-08-07 08:50:42 +02:00
setopt.h
setup-os400.h
setup-vms.h
setup-win32.h
sha256.c lib: prefer CURL_SHA256_DIGEST_LENGTH over the unprefixed name 2024-08-13 10:04:06 +02:00
share.c hash: provide asserts to verify API use 2024-08-15 08:54:19 +02:00
share.h
sigpipe.h
slist.c
slist.h
smb.c
smb.h
smtp.c smtp: add tracing feature 2024-08-14 11:51:55 +02:00
smtp.h
sockaddr.h
socketpair.c
socketpair.h
socks_gssapi.c
socks_sspi.c
socks.c
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
strcase.c
strcase.h
strdup.c
strdup.h
strerror.c
strerror.h
strtok.c
strtok.h
strtoofft.c
strtoofft.h
system_win32.c
system_win32.h
telnet.c
telnet.h
tftp.c
tftp.h
timediff.c
timediff.h
timeval.c
timeval.h
transfer.c http2: improved upload eos handling 2024-08-05 08:53:55 +02:00
transfer.h
url.c urldata: introduce data->mid, a unique identifier inside a multi 2024-08-14 11:21:34 +02:00
url.h
urlapi-int.h
urlapi.c
urldata.h getinfo: add CURLINFO_POSTTRANSFER_TIME_T 2024-08-15 09:02:58 +02:00
version_win32.c
version_win32.h
version.c
warnless.c
warnless.h
ws.c websocket: introduce blocking sends 2024-08-12 19:19:28 +02:00
ws.h