1 _ _ ____ _ 2 ___| | | | _ \| | 3 / __| | | | |_) | | 4 | (__| |_| | _ <| |___ 5 \___|\___/|_| \_\_____| 6 7 Known Bugs 8 9These are problems and bugs known to exist at the time of this release. Feel 10free to join in and help us correct one or more of these. Also be sure to 11check the changelog of the current development status, as one or more of these 12problems may have been fixed or changed somewhat since this was written. 13 14 1. HTTP 15 1.5 Expect-100 meets 417 16 17 2. TLS 18 2.3 Unable to use PKCS12 certificate with Secure Transport 19 2.4 Secure Transport will not import PKCS#12 client certificates without a password 20 2.5 Client cert handling with Issuer DN differs between backends 21 2.7 Client cert (MTLS) issues with Schannel 22 2.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname 23 2.9 TLS session cache does not work with TFO 24 2.11 Schannel TLS 1.2 handshake bug in old Windows versions 25 2.12 FTPS with Schannel times out file list operation 26 2.13 CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel 27 2.15 Renegotiate from server may cause hang for OpenSSL backend 28 29 3. Email protocols 30 3.1 IMAP SEARCH ALL truncated response 31 3.2 No disconnect command 32 3.3 POP3 expects "CRLF.CRLF" eob for some single-line responses 33 3.4 AUTH PLAIN for SMTP is not working on all servers 34 35 4. Command line 36 4.1 -J and -O with %-encoded file names 37 4.2 -J with -C - fails 38 4.3 --retry and transfer timeouts 39 40 5. Build and portability issues 41 5.1 OS400 port requires deprecated IBM library 42 5.2 curl-config --libs contains private details 43 5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10 44 5.5 cannot handle Unicode arguments in non-Unicode builds on Windows 45 5.6 make distclean loops forever 46 5.8 configure finding libs in wrong directory 47 5.9 Utilize Requires.private directives in libcurl.pc 48 5.11 configure --with-gssapi with Heimdal is ignored on macOS 49 5.12 flaky Windows CI builds 50 5.13 long paths are not fully supported on Windows 51 5.14 Windows Unicode builds use homedir in current locale 52 53 6. Authentication 54 6.1 NTLM authentication and unicode 55 6.2 MIT Kerberos for Windows build 56 6.3 NTLM in system context uses wrong name 57 6.4 Negotiate and Kerberos V5 need a fake user name 58 6.5 NTLM does not support password with § character 59 6.6 libcurl can fail to try alternatives with --proxy-any 60 6.7 Do not clear digest for single realm 61 6.9 SHA-256 digest not supported in Windows SSPI builds 62 6.10 curl never completes Negotiate over HTTP 63 6.11 Negotiate on Windows fails 64 6.12 cannot use Secure Transport with Crypto Token Kit 65 6.13 Negotiate against Hadoop HDFS 66 67 7. FTP 68 7.3 FTP with NOBODY and FAILONERROR 69 7.4 FTP with ACCT 70 7.11 FTPS upload data loss with TLS 1.3 71 7.12 FTPS directory listing hangs on Windows with Schannel 72 73 9. SFTP and SCP 74 9.1 SFTP does not do CURLOPT_POSTQUOTE correct 75 9.2 wolfssh: publickey auth does not work 76 9.3 Remote recursive folder creation with SFTP 77 9.4 libssh blocking and infinite loop problem 78 79 10. SOCKS 80 10.3 FTPS over SOCKS 81 82 11. Internals 83 11.1 Curl leaks .onion hostnames in DNS 84 11.2 error buffer not set if connection to multiple addresses fails 85 11.4 HTTP test server 'connection-monitor' problems 86 11.5 Connection information when using TCP Fast Open 87 11.7 signal-based resolver timeouts 88 11.10 Blocking socket operations in non-blocking API 89 11.11 A shared connection cache is not thread-safe 90 11.15 CURLOPT_OPENSOCKETPAIRFUNCTION is missing 91 11.16 libcurl uses renames instead of locking for atomic operations 92 93 12. LDAP 94 12.1 OpenLDAP hangs after returning results 95 12.2 LDAP on Windows does authentication wrong? 96 12.3 LDAP on Windows does not work 97 12.4 LDAPS with NSS is slow 98 99 13. TCP/IP 100 13.2 Trying local ports fails on Windows 101 102 15. CMake 103 15.2 support build with GnuTLS 104 15.3 unusable tool_hugehelp.c with MinGW 105 15.4 build docs/curl.1 106 15.5 build on Linux links libcurl to libdl 107 15.6 uses -lpthread instead of Threads::Threads 108 15.7 generated .pc file contains strange entries 109 15.8 libcurl.pc uses absolute library paths 110 15.10 libpsl is not supported 111 15.11 ExternalProject_Add does not set CURL_CA_PATH 112 15.13 CMake build with MIT Kerberos does not work 113 114 16. Applications 115 116 17. HTTP/2 117 17.2 HTTP/2 frames while in the connection pool kill reuse 118 17.3 ENHANCE_YOUR_CALM causes infinite retries 119 120 18. HTTP/3 121 18.1 If the HTTP/3 server closes connection during upload curl hangs 122 18.2 Transfer closed with n bytes remaining to read 123 18.4 timeout when reusing an http3 connection 124 18.9 connection migration does not work 125 126============================================================================== 127 1281. HTTP 129 1301.5 Expect-100 meets 417 131 132 If an upload using Expect: 100-continue receives an HTTP 417 response, it 133 ought to be automatically resent without the Expect:. A workaround is for 134 the client application to redo the transfer after disabling Expect:. 135 https://curl.se/mail/archive-2008-02/0043.html 136 1372. TLS 138 1392.3 Unable to use PKCS12 certificate with Secure Transport 140 141 See https://github.com/curl/curl/issues/5403 142 1432.4 Secure Transport will not import PKCS#12 client certificates without a password 144 145 libcurl calls SecPKCS12Import with the PKCS#12 client certificate, but that 146 function rejects certificates that do not have a password. 147 https://github.com/curl/curl/issues/1308 148 1492.5 Client cert handling with Issuer DN differs between backends 150 151 When the specified client certificate does not match any of the 152 server-specified DNs, the OpenSSL and GnuTLS backends behave differently. 153 The github discussion may contain a solution. 154 155 See https://github.com/curl/curl/issues/1411 156 1572.7 Client cert (MTLS) issues with Schannel 158 159 See https://github.com/curl/curl/issues/3145 160 1612.8 Schannel disable CURLOPT_SSL_VERIFYPEER and verify hostname 162 163 This seems to be a limitation in the underlying Schannel API. 164 165 https://github.com/curl/curl/issues/3284 166 1672.9 TLS session cache does not work with TFO 168 169 See https://github.com/curl/curl/issues/4301 170 1712.11 Schannel TLS 1.2 handshake bug in old Windows versions 172 173 In old versions of Windows such as 7 and 8.1 the Schannel TLS 1.2 handshake 174 implementation likely has a bug that can rarely cause the key exchange to 175 fail, resulting in error SEC_E_BUFFER_TOO_SMALL or SEC_E_MESSAGE_ALTERED. 176 177 https://github.com/curl/curl/issues/5488 178 1792.12 FTPS with Schannel times out file list operation 180 181 "Instead of the command completing, it just sits there until the timeout 182 expires." - the same command line seems to work with other TLS backends and 183 other operating systems. See https://github.com/curl/curl/issues/5284. 184 1852.13 CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel 186 187 https://github.com/curl/curl/issues/8741 188 1892.15 Renegotiate from server may cause hang for OpenSSL backend 190 191 A race condition has been observed when, immediately after the initial 192 handshake, curl has sent an HTTP request to the server and at the same time 193 the server has sent a TLS hello request (renegotiate) to curl. Both are 194 waiting for the other to respond. OpenSSL is supposed to send a handshake 195 response but does not. 196 197 https://github.com/curl/curl/issues/6785 198 https://github.com/openssl/openssl/issues/14722 199 2003. Email protocols 201 2023.1 IMAP SEARCH ALL truncated response 203 204 IMAP "SEARCH ALL" truncates output on large boxes. "A quick search of the 205 code reveals that pingpong.c contains some truncation code, at line 408, when 206 it deems the server response to be too large truncating it to 40 characters" 207 https://curl.se/bug/view.cgi?id=1366 208 2093.2 No disconnect command 210 211 The disconnect commands (LOGOUT and QUIT) may not be sent by IMAP, POP3 and 212 SMTP if a failure occurs during the authentication phase of a connection. 213 2143.3 POP3 expects "CRLF.CRLF" eob for some single-line responses 215 216 You have to tell libcurl not to expect a body, when dealing with one line 217 response commands. Please see the POP3 examples and test cases which show 218 this for the NOOP and DELE commands. https://curl.se/bug/?i=740 219 2203.4 AUTH PLAIN for SMTP is not working on all servers 221 222 Specifying "--login-options AUTH=PLAIN" on the command line does not seem to 223 work correctly. 224 225 See https://github.com/curl/curl/issues/4080 226 2274. Command line 228 2294.1 -J and -O with %-encoded file names 230 231 -J/--remote-header-name does not decode %-encoded file names. RFC6266 details 232 how it should be done. The can of worm is basically that we have no charset 233 handling in curl and ascii >=128 is a challenge for us. Not to mention that 234 decoding also means that we need to check for nastiness that is attempted, 235 like "../" sequences and the like. Probably everything to the left of any 236 embedded slashes should be cut off. 237 https://curl.se/bug/view.cgi?id=1294 238 239 -O also does not decode %-encoded names, and while it has even less 240 information about the charset involved the process is similar to the -J case. 241 242 Note that we will not add decoding to -O without the user asking for it with 243 some other means as well, since -O has always been documented to use the name 244 exactly as specified in the URL. 245 2464.2 -J with -C - fails 247 248 When using -J (with -O), automatically resumed downloading together with "-C 249 -" fails. Without -J the same command line works. This happens because the 250 resume logic is worked out before the target file name (and thus its 251 pre-transfer size) has been figured out. 252 https://curl.se/bug/view.cgi?id=1169 253 2544.3 --retry and transfer timeouts 255 256 If using --retry and the transfer timeouts (possibly due to using -m or 257 -y/-Y) the next attempt does not resume the transfer properly from what was 258 downloaded in the previous attempt but will truncate and restart at the 259 original position where it was at before the previous failed attempt. See 260 https://curl.se/mail/lib-2008-01/0080.html and Mandriva bug report 261 https://qa.mandriva.com/show_bug.cgi?id=22565 262 2635. Build and portability issues 264 2655.1 OS400 port requires deprecated IBM library 266 267 curl for OS400 requires QADRT to build, which provides ASCII wrappers for 268 libc/POSIX functions in the ILE, but IBM no longer supports or even offers 269 this library to download. 270 271 See https://github.com/curl/curl/issues/5176 272 2735.2 curl-config --libs contains private details 274 275 "curl-config --libs" will include details set in LDFLAGS when configure is 276 run that might be needed only for building libcurl. Further, curl-config 277 --cflags suffers from the same effects with CFLAGS/CPPFLAGS. 278 2795.3 curl compiled on OSX 10.13 failed to run on OSX 10.10 280 281 See https://github.com/curl/curl/issues/2905 282 2835.5 cannot handle Unicode arguments in non-Unicode builds on Windows 284 285 If a URL or filename cannot be encoded using the user's current codepage then 286 it can only be encoded properly in the Unicode character set. Windows uses 287 UTF-16 encoding for Unicode and stores it in wide characters, however curl 288 and libcurl are not equipped for that at the moment except when built with 289 _UNICODE and UNICODE defined. And, except for Cygwin, Windows cannot use UTF-8 290 as a locale. 291 292 https://curl.se/bug/?i=345 293 https://curl.se/bug/?i=731 294 https://curl.se/bug/?i=3747 295 2965.6 make distclean loops forever 297 298 Due to an issue (probably) in automake, "make distclean" can end up in a 299 never-ending loop. 300 301 See https://github.com/curl/curl/issues/7716 302 3035.8 configure finding libs in wrong directory 304 305 When the configure script checks for third-party libraries, it adds those 306 directories to the LDFLAGS variable and then tries linking to see if it 307 works. When successful, the found directory is kept in the LDFLAGS variable 308 when the script continues to execute and do more tests and possibly check for 309 more libraries. 310 311 This can make subsequent checks for libraries wrongly detect another 312 installation in a directory that was previously added to LDFLAGS by another 313 library check. 314 315 A possibly better way to do these checks would be to keep the pristine LDFLAGS 316 even after successful checks and instead add those verified paths to a 317 separate variable that only after all library checks have been performed gets 318 appended to LDFLAGS. 319 3205.9 Utilize Requires.private directives in libcurl.pc 321 322 https://github.com/curl/curl/issues/864 323 3245.11 configure --with-gssapi with Heimdal is ignored on macOS 325 326 ... unless you also pass --with-gssapi-libs 327 328 https://github.com/curl/curl/issues/3841 329 3305.12 flaky Windows CI builds 331 332 We run many CI builds for each commit and PR on github, and especially a 333 number of the Windows builds are flaky. This means that we rarely get all CI 334 builds go green and complete without errors. This is unfortunate as it makes 335 us sometimes miss actual build problems and it is surprising to newcomers to 336 the project who (rightfully) do not expect this. 337 338 See https://github.com/curl/curl/issues/6972 339 3405.13 long paths are not fully supported on Windows 341 342 curl on Windows cannot access long paths (paths longer than 260 characters). 343 However, as a workaround, the Windows path prefix \\?\ which disables all path 344 interpretation may work to allow curl to access the path. For example: 345 \\?\c:\longpath. 346 347 See https://github.com/curl/curl/issues/8361 348 3495.14 Windows Unicode builds use homedir in current locale 350 351 The Windows Unicode builds of curl use the current locale, but expect Unicode 352 UTF-8 encoded paths for internal use such as open, access and stat. The user's 353 home directory is retrieved via curl_getenv in the current locale and not as 354 UTF-8 encoded Unicode. 355 356 See https://github.com/curl/curl/pull/7252 and 357 https://github.com/curl/curl/pull/7281 358 3596. Authentication 360 3616.1 NTLM authentication and unicode 362 363 NTLM authentication involving unicode user name or password only works 364 properly if built with UNICODE defined together with the Schannel 365 backend. The original problem was mentioned in: 366 https://curl.se/mail/lib-2009-10/0024.html 367 https://curl.se/bug/view.cgi?id=896 368 369 The Schannel version verified to work as mentioned in 370 https://curl.se/mail/lib-2012-07/0073.html 371 3726.2 MIT Kerberos for Windows build 373 374 libcurl fails to build with MIT Kerberos for Windows (KfW) due to KfW's 375 library header files exporting symbols/macros that should be kept private to 376 the KfW library. See ticket #5601 at https://krbdev.mit.edu/rt/ 377 3786.3 NTLM in system context uses wrong name 379 380 NTLM authentication using SSPI (on Windows) when (lib)curl is running in 381 "system context" will make it use wrong(?) user name - at least when compared 382 to what winhttp does. See https://curl.se/bug/view.cgi?id=535 383 3846.4 Negotiate and Kerberos V5 need a fake user name 385 386 In order to get Negotiate (SPNEGO) authentication to work in HTTP or Kerberos 387 V5 in the email protocols, you need to provide a (fake) user name (this 388 concerns both curl and the lib) because the code wrongly only considers 389 authentication if there's a user name provided by setting 390 conn->bits.user_passwd in url.c https://curl.se/bug/view.cgi?id=440 How? 391 https://curl.se/mail/lib-2004-08/0182.html A possible solution is to 392 either modify this variable to be set or introduce a variable such as 393 new conn->bits.want_authentication which is set when any of the authentication 394 options are set. 395 3966.5 NTLM does not support password with § character 397 398 https://github.com/curl/curl/issues/2120 399 4006.6 libcurl can fail to try alternatives with --proxy-any 401 402 When connecting via a proxy using --proxy-any, a failure to establish an 403 authentication will cause libcurl to abort trying other options if the 404 failed method has a higher preference than the alternatives. As an example, 405 --proxy-any against a proxy which advertise Negotiate and NTLM, but which 406 fails to set up Kerberos authentication will not proceed to try authentication 407 using NTLM. 408 409 https://github.com/curl/curl/issues/876 410 4116.7 Do not clear digest for single realm 412 413 https://github.com/curl/curl/issues/3267 414 4156.9 SHA-256 digest not supported in Windows SSPI builds 416 417 Windows builds of curl that have SSPI enabled use the native Windows API calls 418 to create authentication strings. The call to InitializeSecurityContext fails 419 with SEC_E_QOP_NOT_SUPPORTED which causes curl to fail with CURLE_AUTH_ERROR. 420 421 Microsoft does not document supported digest algorithms and that SEC_E error 422 code is not a documented error for InitializeSecurityContext (digest). 423 424 https://github.com/curl/curl/issues/6302 425 4266.10 curl never completes Negotiate over HTTP 427 428 Apparently it is not working correctly...? 429 430 See https://github.com/curl/curl/issues/5235 431 4326.11 Negotiate on Windows fails 433 434 When using --negotiate (or NTLM) with curl on Windows, SSL/TLS handshake 435 fails despite having a valid kerberos ticket cached. Works without any issue 436 in Unix/Linux. 437 438 https://github.com/curl/curl/issues/5881 439 4406.12 cannot use Secure Transport with Crypto Token Kit 441 442 https://github.com/curl/curl/issues/7048 443 4446.13 Negotiate authentication against Hadoop HDFS 445 446 https://github.com/curl/curl/issues/8264 447 4487. FTP 449 4507.3 FTP with NOBODY and FAILONERROR 451 452 It seems sensible to be able to use CURLOPT_NOBODY and CURLOPT_FAILONERROR 453 with FTP to detect if a file exists or not, but it is not working: 454 https://curl.se/mail/lib-2008-07/0295.html 455 4567.4 FTP with ACCT 457 458 When doing an operation over FTP that requires the ACCT command (but not when 459 logging in), the operation will fail since libcurl does not detect this and 460 thus fails to issue the correct command: 461 https://curl.se/bug/view.cgi?id=635 462 4637.11 FTPS upload data loss with TLS 1.3 464 465 During FTPS upload curl does not attempt to read TLS handshake messages sent 466 after the initial handshake. OpenSSL servers running TLS 1.3 may send such a 467 message. When curl closes the upload connection if unread data has been 468 received (such as a TLS handshake message) then the TCP protocol sends an 469 RST to the server, which may cause the server to discard or truncate the 470 upload if it has not read all sent data yet, and then return an error to curl 471 on the control channel connection. 472 473 Since 7.78.0 this is mostly fixed. curl will do a single read before closing 474 TLS connections (which causes the TLS library to read handshake messages), 475 however there is still possibility of an RST if more messages need to be read 476 or a message arrives after the read but before close (network race condition). 477 478 https://github.com/curl/curl/issues/6149 479 4807.12 FTPS directory listing hangs on Windows with Schannel 481 482 https://github.com/curl/curl/issues/9161 483 4849. SFTP and SCP 485 4869.1 SFTP does not do CURLOPT_POSTQUOTE correct 487 488 When libcurl sends CURLOPT_POSTQUOTE commands when connected to a SFTP server 489 using the multi interface, the commands are not being sent correctly and 490 instead the connection is "cancelled" (the operation is considered done) 491 prematurely. There is a half-baked (busy-looping) patch provided in the bug 492 report but it cannot be accepted as-is. See 493 https://curl.se/bug/view.cgi?id=748 494 4959.2 wolfssh: publickey auth does not work 496 497 When building curl to use the wolfSSH backend for SFTP, the publickey 498 authentication does not work. This is simply functionality not written for curl 499 yet, the necessary API for make this work is provided by wolfSSH. 500 501 See https://github.com/curl/curl/issues/4820 502 5039.3 Remote recursive folder creation with SFTP 504 505 On this servers, the curl fails to create directories on the remote server 506 even when the CURLOPT_FTP_CREATE_MISSING_DIRS option is set. 507 508 See https://github.com/curl/curl/issues/5204 509 5109.4 libssh blocking and infinite loop problem 511 512 In the SSH_SFTP_INIT state for libssh, the ssh session working mode is set to 513 blocking mode. If the network is suddenly disconnected during sftp 514 transmission, curl will be stuck, even if curl is configured with a timeout. 515 516 https://github.com/curl/curl/issues/8632 517 518 51910. SOCKS 520 52110.3 FTPS over SOCKS 522 523 libcurl does not support FTPS over a SOCKS proxy. 524 525 52611. Internals 527 52811.1 Curl leaks .onion hostnames in DNS 529 530 Curl sends DNS requests for hostnames with a .onion TLD. This leaks 531 information about what the user is attempting to access, and violates this 532 requirement of RFC7686: https://datatracker.ietf.org/doc/html/rfc7686 533 534 Issue: https://github.com/curl/curl/issues/543 535 53611.2 error buffer not set if connection to multiple addresses fails 537 538 If you ask libcurl to resolve a hostname like example.com to IPv6 addresses 539 only. But you only have IPv4 connectivity. libcurl will correctly fail with 540 CURLE_COULDNT_CONNECT. But the error buffer set by CURLOPT_ERRORBUFFER 541 remains empty. Issue: https://github.com/curl/curl/issues/544 542 54311.4 HTTP test server 'connection-monitor' problems 544 545 The 'connection-monitor' feature of the sws HTTP test server does not work 546 properly if some tests are run in unexpected order. Like 1509 and then 1525. 547 548 See https://github.com/curl/curl/issues/868 549 55011.5 Connection information when using TCP Fast Open 551 552 CURLINFO_LOCAL_PORT (and possibly a few other) fails when TCP Fast Open is 553 enabled. 554 555 See https://github.com/curl/curl/issues/1332 and 556 https://github.com/curl/curl/issues/4296 557 55811.7 signal-based resolver timeouts 559 560 libcurl built without an asynchronous resolver library uses alarm() to time 561 out DNS lookups. When a timeout occurs, this causes libcurl to jump from the 562 signal handler back into the library with a sigsetjmp, which effectively 563 causes libcurl to continue running within the signal handler. This is 564 non-portable and could cause problems on some platforms. A discussion on the 565 problem is available at https://curl.se/mail/lib-2008-09/0197.html 566 567 Also, alarm() provides timeout resolution only to the nearest second. alarm 568 ought to be replaced by setitimer on systems that support it. 569 57011.10 Blocking socket operations in non-blocking API 571 572 The list of blocking socket operations is in TODO section "More non-blocking". 573 57411.11 A shared connection cache is not thread-safe 575 576 The share interface offers CURL_LOCK_DATA_CONNECT to have multiple easy 577 handle share a connection cache, but due to how connections are used they are 578 still not thread-safe when used shared. 579 580 See https://github.com/curl/curl/issues/4915 and lib1541.c 581 58211.15 CURLOPT_OPENSOCKETPAIRFUNCTION is missing 583 584 When libcurl creates sockets with socketpair(), those are not "exposed" in 585 CURLOPT_OPENSOCKETFUNCTION and therefore might surprise and be unknown to 586 applications that expect and want all sockets known beforehand. One way to 587 address this issue is to introduce a CURLOPT_OPENSOCKETPAIRFUNCTION callback. 588 589 https://github.com/curl/curl/issues/5747 590 59111.16 libcurl uses renames instead of locking for atomic operations 592 593 For saving cookies, alt-svc and hsts files. This is bad when for example the 594 file is stored in a directory where the application has no write permission 595 but it has permission for the file. 596 597 https://github.com/curl/curl/issues/6882 598 https://github.com/curl/curl/pull/6884 599 60012. LDAP 601 60212.1 OpenLDAP hangs after returning results 603 604 By configuration defaults, OpenLDAP automatically chase referrals on 605 secondary socket descriptors. The OpenLDAP backend is asynchronous and thus 606 should monitor all socket descriptors involved. Currently, these secondary 607 descriptors are not monitored, causing OpenLDAP library to never receive 608 data from them. 609 610 As a temporary workaround, disable referrals chasing by configuration. 611 612 The fix is not easy: proper automatic referrals chasing requires a 613 synchronous bind callback and monitoring an arbitrary number of socket 614 descriptors for a single easy handle (currently limited to 5). 615 616 Generic LDAP is synchronous: OK. 617 618 See https://github.com/curl/curl/issues/622 and 619 https://curl.se/mail/lib-2016-01/0101.html 620 62112.2 LDAP on Windows does authentication wrong? 622 623 https://github.com/curl/curl/issues/3116 624 62512.3 LDAP on Windows does not work 626 627 A simple curl command line getting "ldap://ldap.forumsys.com" returns an 628 error that says "no memory" ! 629 630 https://github.com/curl/curl/issues/4261 631 63212.4 LDAPS with NSS is slow 633 634 See https://github.com/curl/curl/issues/5874 635 63613. TCP/IP 637 63813.2 Trying local ports fails on Windows 639 640 This makes '--local-port [range]' to not work since curl can't properly 641 detect if a port is already in use, so it'll try the first port, use that and 642 then subsequently fail anyway if that was actually in use. 643 644 https://github.com/curl/curl/issues/8112 645 64615. CMake 647 64815.2 support build with GnuTLS 649 65015.3 unusable tool_hugehelp.c with MinGW 651 652 see https://github.com/curl/curl/issues/3125 653 65415.4 build docs/curl.1 655 656 The cmake build does not create the docs/curl.1 file and therefore must rely on 657 it being there already. This makes the --manual option not work and test 658 cases like 1139 cannot function. 659 66015.5 build on Linux links libcurl to libdl 661 662 ... which it should not need to! 663 664 See https://github.com/curl/curl/issues/6165 665 66615.6 uses -lpthread instead of Threads::Threads 667 668 See https://github.com/curl/curl/issues/6166 669 67015.7 generated .pc file contains strange entries 671 672 The Libs.private field of the generated .pc file contains -lgcc -lgcc_s -lc 673 -lgcc -lgcc_s 674 675 See https://github.com/curl/curl/issues/6167 676 67715.8 libcurl.pc uses absolute library paths 678 679 The libcurl.pc file generated by cmake contains things like Libs.private: 680 /usr/lib64/libssl.so /usr/lib64/libcrypto.so /usr/lib64/libz.so. The 681 autotools equivalent would say Libs.private: -lssl -lcrypto -lz 682 683 See https://github.com/curl/curl/issues/6169 684 68515.10 libpsl is not supported 686 687 See https://github.com/curl/curl/issues/6214 688 68915.11 ExternalProject_Add does not set CURL_CA_PATH 690 691 CURL_CA_BUNDLE and CURL_CA_PATH are not set properly when cmake's 692 ExternalProject_Add is used to build curl as a dependency. 693 694 See https://github.com/curl/curl/issues/6313 695 69615.13 CMake build with MIT Kerberos does not work 697 698 Minimum CMake version was bumped in curl 7.71.0 (#5358) Since CMake 3.2 699 try_compile started respecting the CMAKE_EXE_FLAGS. The code dealing with 700 MIT Kerberos detection sets few variables to potentially weird mix of space, 701 and ;-separated flags. It had to blow up at some point. All the CMake checks 702 that involve compilation are doomed from that point, the configured tree 703 cannot be built. 704 705 https://github.com/curl/curl/issues/6904 706 70716. Applications 708 70917. HTTP/2 710 71117.2 HTTP/2 frames while in the connection pool kill reuse 712 713 If the server sends HTTP/2 frames (like for example an HTTP/2 PING frame) to 714 curl while the connection is held in curl's connection pool, the socket will 715 be found readable when considered for reuse and that makes curl think it is 716 dead and then it will be closed and a new connection gets created instead. 717 718 This is *best* fixed by adding monitoring to connections while they are kept 719 in the pool so that pings can be responded to appropriately. 720 72117.3 ENHANCE_YOUR_CALM causes infinite retries 722 723 Infinite retries with 2 parallel requests on one connection receiving GOAWAY 724 with ENHANCE_YOUR_CALM error code. 725 726 See https://github.com/curl/curl/issues/5119 727 72818. HTTP/3 729 73018.1 If the HTTP/3 server closes connection during upload curl hangs 731 732 See https://github.com/curl/curl/issues/6606 733 73418.2 Transfer closed with n bytes remaining to read 735 736 HTTP/3 transfers with the Jetty HTTP/3 server seem to not work. 737 738 https://github.com/curl/curl/issues/8523 739 74018.4 timeout when reusing an http3 connection 741 742 HTTP/3 with quiche seems to not work and always timeout a subsequent transfer 743 that reuses an already established connection 744 745 https://github.com/curl/curl/issues/8764 746 74718.9 connection migration does not work 748 749 https://github.com/curl/curl/issues/7695 750