xf.li | 6c8fc1e | 2023-08-12 00:11:09 -0700 | [diff] [blame] | 1 | _ _ ____ _ |
| 2 | ___| | | | _ \| | |
| 3 | / __| | | | |_) | | |
| 4 | | (__| |_| | _ <| |___ |
| 5 | \___|\___/|_| \_\_____| |
| 6 | |
| 7 | Changelog |
| 8 | |
| 9 | Version 7.86.0 (26 Oct 2022) |
| 10 | |
| 11 | Daniel Stenberg (26 Oct 2022) |
| 12 | - RELEASE: synced |
| 13 | |
| 14 | The 7.86.0 release |
| 15 | |
| 16 | - THANKS: added from the 7.86.0 release |
| 17 | |
| 18 | Viktor Szakats (25 Oct 2022) |
| 19 | - noproxy: include netinet/in.h for htonl() |
| 20 | |
| 21 | Solve the Amiga build warning by including `netinet/in.h`. |
| 22 | |
| 23 | `krb5.c` and `socketpair.c` are using `htonl()` too. This header is |
| 24 | already included in those sources. |
| 25 | |
| 26 | Regression from 1e9a538e05c0107c54ef81d9de7cd0b27cd13309 |
| 27 | |
| 28 | Reviewed-by: Daniel Stenberg |
| 29 | Closes #9787 |
| 30 | |
| 31 | Marc Hoersken (24 Oct 2022) |
| 32 | - CI: fix AppVeyor status failing for starting jobs |
| 33 | |
| 34 | Daniel Stenberg (24 Oct 2022) |
| 35 | - test445: verifies the protocols-over-http-proxy flaw and fix |
| 36 | |
| 37 | - http_proxy: restore the protocol pointer on error |
| 38 | |
| 39 | Reported-by: Trail of Bits |
| 40 | |
| 41 | Closes #9790 |
| 42 | |
| 43 | - multi: remove duplicate include of connect.h |
| 44 | |
| 45 | Reported-by: Martin Strunz |
| 46 | Fixes #9794 |
| 47 | Closes #9795 |
| 48 | |
| 49 | Daniel Gustafsson (24 Oct 2022) |
| 50 | - idn: fix typo in test description |
| 51 | |
| 52 | s/enabked/enabled/i |
| 53 | |
| 54 | Daniel Stenberg (24 Oct 2022) |
| 55 | - url: use IDN decoded names for HSTS checks |
| 56 | |
| 57 | Reported-by: Hiroki Kurosawa |
| 58 | |
| 59 | Closes #9791 |
| 60 | |
| 61 | - unit1614: fix disabled-proxy build |
| 62 | |
| 63 | Follow-up to 1e9a538e05c01 |
| 64 | |
| 65 | Closes #9792 |
| 66 | |
| 67 | Daniel Gustafsson (24 Oct 2022) |
| 68 | - cookies: optimize control character check |
| 69 | |
| 70 | When checking for invalid octets the strcspn() call will return the |
| 71 | position of the first found invalid char or the first NULL byte. |
| 72 | This means that we can check the indicated position in the search- |
| 73 | string saving a strlen() call. |
| 74 | |
| 75 | Closes: #9736 |
| 76 | Reviewed-by: Jay Satiro <raysatiro@yahoo.com> |
| 77 | |
| 78 | Daniel Stenberg (24 Oct 2022) |
| 79 | - netrc: replace fgets with Curl_get_line |
| 80 | |
| 81 | Make the parser only accept complete lines and avoid problems with |
| 82 | overly long lines. |
| 83 | |
| 84 | Reported-by: Hiroki Kurosawa |
| 85 | |
| 86 | Closes #9789 |
| 87 | |
| 88 | - RELEASE-NOTES: add "Planned upcoming removals include" |
| 89 | |
| 90 | URL: https://curl.se/mail/archive-2022-10/0001.html |
| 91 | |
| 92 | Suggested-by: Dan Fandrich |
| 93 | |
| 94 | Viktor Szakats (23 Oct 2022) |
| 95 | - ci: bump to gcc-11 for macos |
| 96 | |
| 97 | Ref: https://github.blog/changelog/2022-10-03-github-actions-jobs-running-on-macos-latest-are-now-running-on-macos-12/ |
| 98 | Ref: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md |
| 99 | |
| 100 | Reviewed-by: Max Dymond |
| 101 | Closes #9785 |
| 102 | |
| 103 | - Makefile.m32: reintroduce CROSSPREFIX and -W -Wall [ci skip] |
| 104 | |
| 105 | - Reintroduce `CROSSPREFIX`: |
| 106 | |
| 107 | If set, we add it to the `CC` and `AR` values, and to the _default_ |
| 108 | value of `RC`, which is `windres`. This allows to control each of |
| 109 | these individidually, while also allowing to simplify configuration |
| 110 | via `CROSSPREFIX`. |
| 111 | |
| 112 | This variable worked differently earlier. Hopefully this new solution |
| 113 | hits a better compromise in usefulness/complexity/flexibility. |
| 114 | |
| 115 | Follow-up to: aa970c4c08775afcd0c2853be89b0a6f02582d50 |
| 116 | |
| 117 | - Enable warnings again: |
| 118 | |
| 119 | This time with an option to override it via `CFLAGS`. Warnings are |
| 120 | also enabled by default in CMake, `makefile.dj` and `makefile.amiga` |
| 121 | builds (not in autotools though). |
| 122 | |
| 123 | Follow-up to 10fbd8b4e3f83b967fd9ad9a41ab484c0e7e7ca3 |
| 124 | |
| 125 | Closes #9784 |
| 126 | |
| 127 | - noproxy: silence unused variable warnings with no ipv6 |
| 128 | |
| 129 | Follow-up to 36474f1050c7f4117e3c8de6cc9217cfebfc717d |
| 130 | |
| 131 | Reviewed-by: Daniel Stenberg |
| 132 | Closes #9782 |
| 133 | |
| 134 | Daniel Stenberg (22 Oct 2022) |
| 135 | - test644: verify --xattr (with redirect) |
| 136 | |
| 137 | - tool_xattr: save the original URL, not the final redirected one |
| 138 | |
| 139 | Adjusted test 1621 accordingly. |
| 140 | |
| 141 | Reported-by: Viktor Szakats |
| 142 | Fixes #9766 |
| 143 | Closes #9768 |
| 144 | |
| 145 | - docs: make sure libcurl opts examples pass in long arguments |
| 146 | |
| 147 | Reported-by: Sergey |
| 148 | Fixes #9779 |
| 149 | Closes #9780 |
| 150 | |
| 151 | Marc Hoersken (21 Oct 2022) |
| 152 | - CI: fix AppVeyor job links only working for most recent build |
| 153 | |
| 154 | Ref: https://github.com/curl/curl/pull/9768#issuecomment-1286675916 |
| 155 | Reported-by: Daniel Stenberg |
| 156 | |
| 157 | Follow up to #9769 |
| 158 | |
| 159 | Viktor Szakats (21 Oct 2022) |
| 160 | - noproxy: fix builds without AF_INET6 |
| 161 | |
| 162 | Regression from 1e9a538e05c0107c54ef81d9de7cd0b27cd13309 |
| 163 | |
| 164 | Reviewed-by: Daniel Stenberg |
| 165 | |
| 166 | Closes #9778 |
| 167 | |
| 168 | Daniel Stenberg (21 Oct 2022) |
| 169 | - noproxy: support proxies specified using cidr notation |
| 170 | |
| 171 | For both IPv4 and IPv6 addresses. Now also checks IPv6 addresses "correctly" |
| 172 | and not with string comparisons. |
| 173 | |
| 174 | Split out the noproxy checks and functionality into noproxy.c |
| 175 | |
| 176 | Added unit test 1614 to verify checking functions. |
| 177 | |
| 178 | Reported-by: Mathieu Carbonneaux |
| 179 | |
| 180 | Fixes #9773 |
| 181 | Fixes #5745 |
| 182 | Closes #9775 |
| 183 | |
| 184 | - urlapi: remove two variable assigns |
| 185 | |
| 186 | To please scan-build: |
| 187 | |
| 188 | urlapi.c:1163:9: warning: Value stored to 'qlen' is never read |
| 189 | qlen = Curl_dyn_len(&enc); |
| 190 | ^ ~~~~~~~~~~~~~~~~~~ |
| 191 | urlapi.c:1164:9: warning: Value stored to 'query' is never read |
| 192 | query = u->query = Curl_dyn_ptr(&enc); |
| 193 | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 194 | |
| 195 | Follow-up to 7d6cf06f571d57 |
| 196 | |
| 197 | Closes #9777 |
| 198 | |
| 199 | - [Jeremy Maitin-Shepard brought this change] |
| 200 | |
| 201 | cmake: improve usability of CMake build as a sub-project |
| 202 | |
| 203 | - Renames `uninstall` -> `curl_uninstall` |
| 204 | - Ensures all export rules are guarded by CURL_ENABLE_EXPORT_TARGET |
| 205 | |
| 206 | Closes #9638 |
| 207 | |
| 208 | - [Don J Olmstead brought this change] |
| 209 | |
| 210 | easy_lock: check for HAVE_STDATOMIC_H as well |
| 211 | |
| 212 | The check for `HAVE_STDATOMIC_H` looks to see if the `stdatomic.h` |
| 213 | header is present. |
| 214 | |
| 215 | Closes #9755 |
| 216 | |
| 217 | - RELEASE-NOTES: synced |
| 218 | |
| 219 | - [Brad Harder brought this change] |
| 220 | |
| 221 | CURLMOPT_PIPELINING.3: dedup manpage xref |
| 222 | |
| 223 | Closes #9776 |
| 224 | |
| 225 | Marc Hoersken (20 Oct 2022) |
| 226 | - CI: report AppVeyor build status for each job |
| 227 | |
| 228 | Also give each job on AppVeyor CI a human-readable name. |
| 229 | |
| 230 | This aims to make job and therefore build failures more visible. |
| 231 | |
| 232 | Reviewed-by: Marcel Raad |
| 233 | Closes #9769 |
| 234 | |
| 235 | Viktor Szakats (20 Oct 2022) |
| 236 | - amiga: set SIZEOF_CURL_OFF_T=8 by default [ci skip] |
| 237 | |
| 238 | Reviewed-by: Daniel Stenberg |
| 239 | |
| 240 | Closes #9771 |
| 241 | |
| 242 | - connect: fix builds without AF_INET6 |
| 243 | |
| 244 | Regression from 2b309560c1e5d6ed5c0e542e6fdffa968b0521c9 |
| 245 | |
| 246 | Reviewed-by: Daniel Stenberg |
| 247 | Reviewed-by: Jay Satiro |
| 248 | |
| 249 | Closes #9770 |
| 250 | |
| 251 | Daniel Stenberg (20 Oct 2022) |
| 252 | - test1105: adjust <data> to work with a hyper build |
| 253 | |
| 254 | Closes #9767 |
| 255 | |
| 256 | - urlapi: fix parsing URL without slash with CURLU_URLENCODE |
| 257 | |
| 258 | When CURLU_URLENCODE is set, the parser would mistreat the path |
| 259 | component if the URL was specified without a slash like in |
| 260 | http://local.test:80?-123 |
| 261 | |
| 262 | Extended test 1560 to reproduce and verify the fix. |
| 263 | |
| 264 | Reported-by: Trail of Bits |
| 265 | |
| 266 | Closes #9763 |
| 267 | |
| 268 | Marc Hoersken (19 Oct 2022) |
| 269 | - tests: avoid CreateThread if _beginthreadex is available |
| 270 | |
| 271 | CreateThread is not threadsafe if mixed with CRT calls. |
| 272 | _beginthreadex on the other hand can be mixed with CRT. |
| 273 | |
| 274 | Reviewed-by: Marcel Raad |
| 275 | Closes #9705 |
| 276 | |
| 277 | Jay Satiro (19 Oct 2022) |
| 278 | - [Joel Depooter brought this change] |
| 279 | |
| 280 | schannel: Don't reset recv/send function pointers on renegotiation |
| 281 | |
| 282 | These function pointers will have been set when the initial TLS |
| 283 | handshake was completed. If they are unchanged, there is no need to set |
| 284 | them again. If they have been changed, as is the case with HTTP/2, we |
| 285 | don't want to override that change. That would result in the |
| 286 | http22_recv/send functions being completely bypassed. |
| 287 | |
| 288 | Prior to this change a connection that uses Schannel with HTTP/2 would |
| 289 | fail on renegotiation with error "Received HTTP/0.9 when not allowed". |
| 290 | |
| 291 | Fixes https://github.com/curl/curl/issues/9451 |
| 292 | Closes https://github.com/curl/curl/pull/9756 |
| 293 | |
| 294 | Viktor Szakats (18 Oct 2022) |
| 295 | - hostip: guard PF_INET6 use |
| 296 | |
| 297 | Some platforms (e.g. Amiga OS) do not have `PF_INET6`. Adjust the code |
| 298 | for these. |
| 299 | |
| 300 | ``` |
| 301 | hostip.c: In function 'fetch_addr': |
| 302 | hostip.c:308:12: error: 'PF_INET6' undeclared (first use in this function) |
| 303 | pf = PF_INET6; |
| 304 | ^~~~~~~~ |
| 305 | ``` |
| 306 | |
| 307 | Regression from 1902e8fc511078fb5e26fc2b907b4cce77e1240d |
| 308 | |
| 309 | Reviewed-by: Daniel Stenberg |
| 310 | |
| 311 | Closes #9760 |
| 312 | |
| 313 | - amiga: do not hardcode openssl/zlib into the os config [ci skip] |
| 314 | |
| 315 | Enable them in `lib/makefile.amiga` and `src/makefile.amiga` instead. |
| 316 | |
| 317 | This allows builds without openssl and/or zlib. E.g. with the |
| 318 | <https://github.com/bebbo/amiga-gcc> cross-compiler. |
| 319 | |
| 320 | Reviewed-by: Daniel Stenberg |
| 321 | |
| 322 | Closes #9762 |
| 323 | |
| 324 | - amigaos: add missing curl header [ci skip] |
| 325 | |
| 326 | Without it, `CURLcode` and `CURLE_*` are undefined. `lib/hostip.h` and |
| 327 | conditional local code need them. |
| 328 | |
| 329 | Reviewed-by: Daniel Stenberg |
| 330 | |
| 331 | Closes #9761 |
| 332 | |
| 333 | Daniel Stenberg (18 Oct 2022) |
| 334 | - cmdline/docs: add a required 'multi' keyword for each option |
| 335 | |
| 336 | The keyword specifies how option works when specified multiple times: |
| 337 | |
| 338 | - single: the last provided value replaces the earlier ones |
| 339 | - append: it supports being provided multiple times |
| 340 | - boolean: on/off values |
| 341 | - mutex: flag-like option that disable anoter flag |
| 342 | |
| 343 | The 'gen.pl' script then outputs the proper and unified language for |
| 344 | each option's multi-use behavior in the generated man page. |
| 345 | |
| 346 | The multi: header is requires in each .d file and will cause build error |
| 347 | if missing or set to an unknown value. |
| 348 | |
| 349 | Closes #9759 |
| 350 | |
| 351 | - CURLOPT_AUTOREFERER.3: highlight the privacy leak risk |
| 352 | |
| 353 | Closes #9757 |
| 354 | |
| 355 | - mprintf: reject two kinds of precision for the same argument |
| 356 | |
| 357 | An input like "%.*1$.9999d" would first use the precision taken as an |
| 358 | argument *and* then the precision specified in the string, which is |
| 359 | confusing and wrong. pass1 will now instead return error on this double |
| 360 | use. |
| 361 | |
| 362 | Adjusted unit test 1398 to verify |
| 363 | |
| 364 | Reported-by: Peter Goodman |
| 365 | |
| 366 | Closes #9754 |
| 367 | |
| 368 | - ftp: remove redundant if |
| 369 | |
| 370 | Reported-by: Trail of Bits |
| 371 | |
| 372 | Closes #9753 |
| 373 | |
| 374 | - tool_operate: more transfer cleanup after parallel transfer fail |
| 375 | |
| 376 | In some circumstances when doing parallel transfers, the |
| 377 | single_transfer_cleanup() would not be called and then 'inglob' could |
| 378 | leak. |
| 379 | |
| 380 | Test 496 verifies |
| 381 | |
| 382 | Reported-by: Trail of Bits |
| 383 | Closes #9749 |
| 384 | |
| 385 | - mqtt: spell out CONNECT in comments |
| 386 | |
| 387 | Instead of calling it 'CONN' in several comments, use the full and |
| 388 | correct protocol packet name. |
| 389 | |
| 390 | Suggested by Trail of Bits |
| 391 | |
| 392 | Closes #9751 |
| 393 | |
| 394 | - CURLOPT_POSTFIELDS.3: refer to CURLOPT_MIMEPOST |
| 395 | |
| 396 | Not the deprecated CURLOPT_HTTPPOST option. |
| 397 | |
| 398 | Also added two see-alsos. |
| 399 | |
| 400 | Reported-by: Trail of Bits |
| 401 | Closes #9752 |
| 402 | |
| 403 | - RELEASE-NOTES: synced |
| 404 | |
| 405 | Jay Satiro (17 Oct 2022) |
| 406 | - ngtcp2: Fix build errors due to changes in ngtcp2 library |
| 407 | |
| 408 | ngtcp2/ngtcp2@b0d86f60 changed: |
| 409 | |
| 410 | - ngtcp2_conn_get_max_udp_payload_size => |
| 411 | ngtcp2_conn_get_max_tx_udp_payload_size |
| 412 | |
| 413 | - ngtcp2_conn_get_path_max_udp_payload_size => |
| 414 | ngtcp2_conn_get_path_max_tx_udp_payload_size |
| 415 | |
| 416 | ngtcp2/ngtcp2@ec59b873 changed: |
| 417 | |
| 418 | - 'early_data_rejected' member added to ng_callbacks. |
| 419 | |
| 420 | Assisted-by: Daniel Stenberg |
| 421 | Reported-by: jurisuk@users.noreply.github.com |
| 422 | |
| 423 | Fixes https://github.com/curl/curl/issues/9747 |
| 424 | Closes https://github.com/curl/curl/pull/9748 |
| 425 | |
| 426 | Daniel Stenberg (16 Oct 2022) |
| 427 | - curl_path: return error if given a NULL homedir |
| 428 | |
| 429 | Closes #9740 |
| 430 | |
| 431 | - libssh: if sftp_init fails, don't get the sftp error code |
| 432 | |
| 433 | This flow extracted the wrong code (sftp code instead of ssh code), and |
| 434 | the code is sometimes (erroneously) returned as zero anyway, so skip |
| 435 | getting it and set a generic error. |
| 436 | |
| 437 | Reported-by: David McLaughlin |
| 438 | Fixes #9737 |
| 439 | Closes #9740 |
| 440 | |
| 441 | - mqtt: return error for too long topic |
| 442 | |
| 443 | Closes #9744 |
| 444 | |
| 445 | - [Rickard HallerbƤck brought this change] |
| 446 | |
| 447 | tool_paramhlp: make the max argument a 'double' |
| 448 | |
| 449 | To fix compiler warnings "Implicit conversion from 'long' to 'double' |
| 450 | may lose precision" |
| 451 | |
| 452 | Closes #9700 |
| 453 | |
| 454 | Marc Hoersken (15 Oct 2022) |
| 455 | - [Philip Heiduck brought this change] |
| 456 | |
| 457 | cirrus-ci: add more macOS builds with m1 based on x86_64 builds |
| 458 | |
| 459 | Also refactor macOS builds to use task matrix. |
| 460 | |
| 461 | Assisted-by: Marc Hƶrsken |
| 462 | Closes #9565 |
| 463 | |
| 464 | Viktor Szakats (14 Oct 2022) |
| 465 | - cmake: set HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID on Windows |
| 466 | |
| 467 | `lib/config-win32.h` enables this configuration option unconditionally. |
| 468 | Make it apply to CMake builds as well. |
| 469 | |
| 470 | While here, delete a broken check for |
| 471 | `HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID` from `CMakeLists.txt`. This came with |
| 472 | the initial commit [1], but did not include the actual verification code |
| 473 | inside `CMake/CurlTests.c`, so it always failed. A later commit [2] |
| 474 | added a second test, for non-Windows platforms. |
| 475 | |
| 476 | Enabling this flag causes test 1056 to fail with CMake builds, as they |
| 477 | do with autotools builds. Let's apply the same solution and ignore the |
| 478 | results here as well. |
| 479 | |
| 480 | [1] 4c5307b45655ba75ab066564afdc0c111a8b9291 |
| 481 | [2] aec7c5a87c8482b6ddffa352d7d220698652262e |
| 482 | |
| 483 | Reviewed-by: Daniel Stenberg |
| 484 | Assisted-by: Marcel Raad |
| 485 | |
| 486 | Closes #9726 |
| 487 | |
| 488 | - cmake: set HAVE_GETADDRINFO_THREADSAFE on Windows |
| 489 | |
| 490 | autotools enables this configuration option unconditionally for Windows |
| 491 | [^1]. Do the same in CMake. |
| 492 | |
| 493 | The above will make this work for all reasonably recent environments. |
| 494 | The logic present in `lib/config-win32.h` [^2] has the following |
| 495 | exceptions which we did not cover in this CMake update: |
| 496 | |
| 497 | - Builds targeting Windows 2000 and earlier |
| 498 | - MS Visual C++ 5.0 (1997) and earlier |
| 499 | |
| 500 | Also make sure to disable this feature when `HAVE_GETADDRINFO` isn't |
| 501 | set, to avoid a broken build. We might want to handle that in the C |
| 502 | sources in a future commit. |
| 503 | |
| 504 | [^1]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/m4/curl-functions.m4#L2067-L2070 |
| 505 | |
| 506 | [^2]: https://github.com/curl/curl/blob/68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6/lib/config-win32.h#L511-L528 |
| 507 | |
| 508 | Closes #9727 |
| 509 | |
| 510 | - cmake: sync HAVE_SIGNAL detection with autotools |
| 511 | |
| 512 | `HAVE_SIGNAL` means the availability of the `signal()` function in |
| 513 | autotools, while in CMake it meant the availability of that function |
| 514 | _and_ the symbol `SIGALRM`. |
| 515 | |
| 516 | The latter is not available on Windows, but the function is, which means |
| 517 | on Windows, autotools did define `HAVE_SIGNAL`, but CMake did not, |
| 518 | introducing a slight difference into the binaries. |
| 519 | |
| 520 | This patch syncs CMake behaviour with autotools to look for the function |
| 521 | only. |
| 522 | |
| 523 | The logic came with the initial commit adding CMake support to curl, so |
| 524 | the commit history doesn't reveal the reason behind it. In any case, |
| 525 | it's best to check the existence of `SIGALRM` directly in the source |
| 526 | before use. For now, curl builds fine with `HAVE_SIGNAL` enabled and |
| 527 | `SIGALRM` missing. |
| 528 | |
| 529 | Follow-up to 68fa9bf3f5d7b4fcbb57619f70cb4aabb79a51f6 |
| 530 | |
| 531 | Closes #9725 |
| 532 | |
| 533 | - cmake: delete duplicate HAVE_GETADDRINFO test |
| 534 | |
| 535 | A custom `HAVE_GETADDRINFO` check came with the initial CMake commit |
| 536 | [1]. A later commit [2] added a standard check for it as well. The |
| 537 | standard check run before the custom one, so CMake ignored the latter. |
| 538 | |
| 539 | The custom check was also non-portable, so this patch deletes it in |
| 540 | favor of the standard check. |
| 541 | |
| 542 | [1] 4c5307b45655ba75ab066564afdc0c111a8b9291 |
| 543 | [2] aec7c5a87c8482b6ddffa352d7d220698652262e |
| 544 | |
| 545 | Closes #9731 |
| 546 | |
| 547 | Daniel Stenberg (14 Oct 2022) |
| 548 | - tool_formparse: unroll the NULL_CHECK and CONST_FREE macros |
| 549 | |
| 550 | To make the code read more obvious |
| 551 | |
| 552 | Assisted-by: Jay Satiro |
| 553 | |
| 554 | Closes #9710 |
| 555 | |
| 556 | - [Christopher Sauer brought this change] |
| 557 | |
| 558 | docs/INSTALL: update Android Instructions for newer NDKs |
| 559 | |
| 560 | Closes #9732 |
| 561 | |
| 562 | - markdown-uppercase: ignore quoted sections |
| 563 | |
| 564 | Sections within the markdown ~~~ or ``` are now ignored. |
| 565 | |
| 566 | Closes #9733 |
| 567 | |
| 568 | - RELEASE-NOTES: synced |
| 569 | |
| 570 | - test8: update as cookies no longer can have "embedded" TABs in content |
| 571 | |
| 572 | - test1105: extend to verify TAB in name/content discarding cookies |
| 573 | |
| 574 | - cookie: reject cookie names or content with TAB characters |
| 575 | |
| 576 | TABs in name and content seem allowed by RFC 6265: "the algorithm strips |
| 577 | leading and trailing whitespace from the cookie name and value (but |
| 578 | maintains internal whitespace)" |
| 579 | |
| 580 | Cookies with TABs in the names are rejected by Firefox and Chrome. |
| 581 | |
| 582 | TABs in content are stripped out by Firefox, while Chrome discards the |
| 583 | whole cookie. |
| 584 | |
| 585 | TABs in cookies also cause issues in saved netscape cookie files. |
| 586 | |
| 587 | Reported-by: Trail of Bits |
| 588 | |
| 589 | URL: https://curl.se/mail/lib-2022-10/0032.html |
| 590 | URL: https://github.com/httpwg/http-extensions/issues/2262 |
| 591 | |
| 592 | Closes #9659 |
| 593 | |
| 594 | - curl/add_parallel_transfers: better error handling |
| 595 | |
| 596 | 1 - consider the transfer handled at once when in the function, to avoid |
| 597 | the same list entry to get added more than once in rare error |
| 598 | situations |
| 599 | |
| 600 | 2 - set the ERRORBUFFER for the handle first after it has been added |
| 601 | successfully |
| 602 | |
| 603 | Reported-by: Trail of Bits |
| 604 | |
| 605 | Closes #9729 |
| 606 | |
| 607 | - netrc: remove the two 'changed' arguments |
| 608 | |
| 609 | As no user of these functions used the returned content. |
| 610 | |
| 611 | - test495: verify URL encoded user name + netrc-optional |
| 612 | |
| 613 | Reproduced issue #9709 |
| 614 | |
| 615 | - netrc: use the URL-decoded user |
| 616 | |
| 617 | When the user name is provided in the URL it is URL encoded there, but |
| 618 | when used for authentication the encoded version should be used. |
| 619 | |
| 620 | Regression introduced after 7.83.0 |
| 621 | |
| 622 | Reported-by: Jonas Haag |
| 623 | Fixes #9709 |
| 624 | Closes #9715 |
| 625 | |
| 626 | - [Shaun Mirani brought this change] |
| 627 | |
| 628 | url: allow non-HTTPS HSTS-matching for debug builds |
| 629 | |
| 630 | Closes #9728 |
| 631 | |
| 632 | - test1275: remove the check of stderr |
| 633 | |
| 634 | To avoid the mysterious test failures on Windows, instead rely on the |
| 635 | error code returned on failure. |
| 636 | |
| 637 | Fixes #9716 |
| 638 | Closes #9723 |
| 639 | |
| 640 | Viktor Szakats (13 Oct 2022) |
| 641 | - lib: set more flags in config-win32.h |
| 642 | |
| 643 | The goal is to add any flag that affect the created binary, to get in |
| 644 | sync with the ones built with CMake and autotools. |
| 645 | |
| 646 | I took these flags from curl-for-win [0], where they've been tested with |
| 647 | mingw-w64 and proven to work well. |
| 648 | |
| 649 | This patch brings them to curl as follows: |
| 650 | |
| 651 | - Enable unconditionally those force-enabled via |
| 652 | `CMake/WindowsCache.cmake`: |
| 653 | |
| 654 | - `HAVE_SETJMP_H` |
| 655 | - `HAVE_STRING_H` |
| 656 | - `HAVE_SIGNAL` (CMake equivalent is `HAVE_SIGNAL_FUNC`) |
| 657 | |
| 658 | - Expand existing guards with mingw-w64: |
| 659 | |
| 660 | - `HAVE_STDBOOL_H` |
| 661 | - `HAVE_BOOL_T` |
| 662 | |
| 663 | - Enable Win32 API functions for Windows Vista and later: |
| 664 | |
| 665 | - `HAVE_INET_NTOP` |
| 666 | - `HAVE_INET_PTON` |
| 667 | |
| 668 | - Set sizes, if not already set: |
| 669 | |
| 670 | - `SIZEOF_OFF_T = 8` |
| 671 | - `_FILE_OFFSET_BITS = 64` when `USE_WIN32_LARGE_FILES` is set, |
| 672 | and using mingw-w64. |
| 673 | |
| 674 | - Add the remaining for mingw-w64 only. Feel free to expand as desired: |
| 675 | |
| 676 | - `HAVE_LIBGEN_H` |
| 677 | - `HAVE_FTRUNCATE` |
| 678 | - `HAVE_BASENAME` |
| 679 | - `HAVE_STRTOK_R` |
| 680 | |
| 681 | Future TODO: |
| 682 | |
| 683 | - `HAVE_SIGNAL` has a different meaning in CMake. It's enabled when both |
| 684 | the `signal()` function and the `SIGALRM` macro are found. In |
| 685 | autotools and this header, it means the function only. For the |
| 686 | function alone, CMake uses `HAVE_SIGNAL_FUNC`. |
| 687 | |
| 688 | [0] https://github.com/curl/curl-for-win/blob/c9b9a5f273c94c73d2b565ee892c4dff0ca97a8c/curl-m32.sh#L53-L58 |
| 689 | |
| 690 | Reviewed-by: Daniel Stenberg |
| 691 | |
| 692 | Closes #9712 |
| 693 | |
| 694 | Daniel Stenberg (13 Oct 2022) |
| 695 | - tests: add tests/markdown-uppercase.pl to dist tarball |
| 696 | |
| 697 | Follow-up to aafb06c5928183d |
| 698 | |
| 699 | Closes #9722 |
| 700 | |
| 701 | - tool_paramhelp: asserts verify maximum sizes for string loading |
| 702 | |
| 703 | The two defines MAX_FILE2MEMORY and MAX_FILE2STRING define the largest |
| 704 | strings accepted when loading files into memory, but as the size is |
| 705 | later used as input to functions that take the size as 'int' as |
| 706 | argument, the sizes must not be larger than INT_MAX. |
| 707 | |
| 708 | These two new assert()s make the code error out if someone would bump |
| 709 | the sizes without this consideration. |
| 710 | |
| 711 | Reported-by Trail of Bits |
| 712 | |
| 713 | Closes #9719 |
| 714 | |
| 715 | - http: try parsing Retry-After: as a number first |
| 716 | |
| 717 | Since the date parser allows YYYYMMDD as a date format (due to it being |
| 718 | a bit too generic for parsing this particular header), a large integer |
| 719 | number could wrongly match that pattern and cause the parser to generate |
| 720 | a wrong value. |
| 721 | |
| 722 | No date format accepted for this header starts with a decimal number, so |
| 723 | by reversing the check and trying a number first we can deduct that if |
| 724 | that works, it was not a date. |
| 725 | |
| 726 | Reported-by Trail of Bits |
| 727 | |
| 728 | Closes #9718 |
| 729 | |
| 730 | - [Patrick Monnerat brought this change] |
| 731 | |
| 732 | doc: fix deprecation versions inconsistencies |
| 733 | |
| 734 | Ref: https://curl.se/mail/lib-2022-10/0026.html |
| 735 | |
| 736 | Closes #9711 |
| 737 | |
| 738 | - http_aws_sigv4: fix strlen() check |
| 739 | |
| 740 | The check was off-by-one leading to buffer overflow. |
| 741 | |
| 742 | Follow-up to 29c4aa00a16872 |
| 743 | |
| 744 | Detected by OSS-Fuzz |
| 745 | |
| 746 | Closes #9714 |
| 747 | |
| 748 | - curl/main_checkfds: check the fcntl return code better |
| 749 | |
| 750 | fcntl() can (in theory) return a non-zero number for success, so a |
| 751 | better test for error is checking for -1 explicitly. |
| 752 | |
| 753 | Follow-up to 41e1b30ea1b77e9ff |
| 754 | |
| 755 | Mentioned-by: Dominik Klemba |
| 756 | |
| 757 | Closes #9708 |
| 758 | |
| 759 | Viktor Szakats (12 Oct 2022) |
| 760 | - tidy-up: delete unused HAVE_STRUCT_POLLFD |
| 761 | |
| 762 | It was only defined in `lib/config-win32.h`, when building for Vista. |
| 763 | |
| 764 | It was only used in `select.h`, in a condition that also included a |
| 765 | check for `POLLIN` which is a superior choice for this detection and |
| 766 | which was already used by cmake and autotools builds. |
| 767 | |
| 768 | Delete both instances of this macro. |
| 769 | |
| 770 | Closes #9707 |
| 771 | |
| 772 | Daniel Stenberg (12 Oct 2022) |
| 773 | - test1275: verify upercase after period in markdown |
| 774 | |
| 775 | Script based on the #9474 pull-request logic, but implemented in perl. |
| 776 | |
| 777 | Updated docs/URL-SYNTAX.md accordingly. |
| 778 | |
| 779 | Suggested-by: Dan Fandrich |
| 780 | |
| 781 | Closes #9697 |
| 782 | |
| 783 | - [12932 brought this change] |
| 784 | |
| 785 | misc: nitpick grammar in comments/docs |
| 786 | |
| 787 | because the 'u' in URL is actually a consonant *sound* it is only |
| 788 | correct to write "a URL" |
| 789 | |
| 790 | sorry this is a bit nitpicky :P |
| 791 | |
| 792 | https://english.stackexchange.com/questions/152/when-should-i-use-a-vs-an |
| 793 | https://www.techtarget.com/whatis/feature/Which-is-correct-a-URL-or-an-URL |
| 794 | |
| 795 | Closes #9699 |
| 796 | |
| 797 | Viktor Szakats (11 Oct 2022) |
| 798 | - Makefile.m32: drop CROSSPREFIX and our CC/AR defaults [ci skip] |
| 799 | |
| 800 | This patch aimed to fix a regression [0], where `CC` initialization |
| 801 | moved beyond its first use. But, on closer inspection it turned out that |
| 802 | the `CC` initialization does not work as expected due to GNU Make |
| 803 | filling it with `cc` by default. So unless implicit values were |
| 804 | explicitly disabled via a GNU Make option, the default value of |
| 805 | `$CROSSPREFIX` + `gcc` was never used. At the same time the implicit |
| 806 | value `cc` maps to `gcc` in (most/all?) MinGW envs. |
| 807 | |
| 808 | `AR` has the same issue, with a default value of `ar`. |
| 809 | |
| 810 | We could reintroduce a separate variable to fix this without ill |
| 811 | effects, but for simplicity and flexibility, it seems better to drop |
| 812 | support for `CROSSPREFIX`, along with our own `CC`/`AR` init logic, and |
| 813 | require the caller to initialize `CC`, `AR` and `RC` to the full |
| 814 | (prefixed if necessary) names of these tools, as desired. |
| 815 | |
| 816 | We keep `RC ?= windres` because `RC` is empty by default. |
| 817 | |
| 818 | Also fix grammar in a comment. |
| 819 | |
| 820 | [0] 10fbd8b4e3f83b967fd9ad9a41ab484c0e7e7ca3 |
| 821 | |
| 822 | Closes #9698 |
| 823 | |
| 824 | - smb: replace CURL_WIN32 with WIN32 |
| 825 | |
| 826 | PR #9255 aimed to fix a Cygwin/MSYS issue (#8220). It used the |
| 827 | `CURL_WIN32` macro, but that one is not defined here, while compiling |
| 828 | curl itself. This patch changes this to `WIN32`, assuming this was the |
| 829 | original intent. |
| 830 | |
| 831 | Regression from 1c52e8a3795ccdf8ec9c308f4f8f19cf10ea1f1a |
| 832 | |
| 833 | Reviewed-by: Marcel Raad |
| 834 | |
| 835 | Closes #9701 |
| 836 | |
| 837 | Daniel Stenberg (11 Oct 2022) |
| 838 | - [Matthias Gatto brought this change] |
| 839 | |
| 840 | aws_sigv4: fix header computation |
| 841 | |
| 842 | Handle canonical headers and signed headers creation as explained here: |
| 843 | https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html |
| 844 | |
| 845 | The algo tells that signed and canonical must contain at last host and |
| 846 | x-amz-date. |
| 847 | |
| 848 | So we check whatever thoses are present in the curl http headers list. |
| 849 | If they are, we use the one enter by curl user, otherwise we generate |
| 850 | them. then we to lower, and remove space from each http headers plus |
| 851 | host and x-amz-date, then sort them all by alphabetical order. |
| 852 | |
| 853 | This patch also fix a bug with host header, which was ignoring the port. |
| 854 | |
| 855 | Closes #7966 |
| 856 | |
| 857 | Jay Satiro (11 Oct 2022) |
| 858 | - [Aftab Alam brought this change] |
| 859 | |
| 860 | README.md: link the curl logo to the website |
| 861 | |
| 862 | - Link the curl:// image to https://curl.se/ |
| 863 | |
| 864 | Closes https://github.com/curl/curl/pull/9675 |
| 865 | |
| 866 | - [Dustin Howett brought this change] |
| 867 | |
| 868 | schannel: when importing PFX, disable key persistence |
| 869 | |
| 870 | By default, the PFXImportCertStore API persists the key in the user's |
| 871 | key store (as though the certificate was being imported for permanent, |
| 872 | ongoing use.) |
| 873 | |
| 874 | The documentation specifies that keys that are not to be persisted |
| 875 | should be imported with the flag PKCS12_NO_PERSIST_KEY. |
| 876 | NOTE: this flag is only supported on versions of Windows newer than XP |
| 877 | and Server 2003. |
| 878 | |
| 879 | -- |
| 880 | |
| 881 | This is take 2 of the original fix. It extends the lifetime of the |
| 882 | client certificate store to that of the credential handle. The original |
| 883 | fix which landed in 70d010d and was later reverted in aec8d30 failed to |
| 884 | work properly because it did not do that. |
| 885 | |
| 886 | Minor changes were made to the schannel credential context to support |
| 887 | closing the client certificate store handle at the end of an SSL session. |
| 888 | |
| 889 | -- |
| 890 | |
| 891 | Reported-by: ShadowZzj@users.noreply.github.com |
| 892 | |
| 893 | Fixes https://github.com/curl/curl/issues/9300 |
| 894 | Supersedes https://github.com/curl/curl/pull/9363 |
| 895 | Closes https://github.com/curl/curl/pull/9460 |
| 896 | |
| 897 | Viktor Szakats (11 Oct 2022) |
| 898 | - Makefile.m32: support more options [ci skip] |
| 899 | |
| 900 | - Add support for these options: |
| 901 | `-wolfssl`, `-wolfssh`, `-mbedtls`, `-libssh`, `-psl` |
| 902 | |
| 903 | Caveats: |
| 904 | - `-wolfssh` requires `-wolfssl`. |
| 905 | - `-wolfssl` cannot be used with OpenSSL backends in parallel. |
| 906 | - `-libssh` has build issues with BoringSSL and LibreSSL, and also |
| 907 | what looks like a world-writable-config vulnerability on Windows. |
| 908 | Consider it experimental. |
| 909 | - `-psl` requires `-idn2` and extra libs passed via |
| 910 | `LIBS=-liconv -lunistring`. |
| 911 | |
| 912 | - Detect BoringSSL/wolfSSL and set ngtcp2 crypto lib accordingly. |
| 913 | - Generalize MultiSSL detection. |
| 914 | - Use else-if syntax. Requires GNU Make 3.81 (2006-04-01). |
| 915 | - Document more customization options. |
| 916 | |
| 917 | This brings over some configuration logic from `curl-for-win`. |
| 918 | |
| 919 | Closes #9680 |
| 920 | |
| 921 | - cmake: enable more detection on Windows |
| 922 | |
| 923 | Enable `HAVE_UNISTD_H`, `HAVE_STRTOK_R` and `HAVE_STRCASECMP` detection |
| 924 | on Windows, instead of having predefined values. |
| 925 | |
| 926 | With these features detected correctly, CMake Windows builds get closer |
| 927 | to the autotools and `config-win32.h` ones. |
| 928 | |
| 929 | This also fixes detecting `HAVE_FTRUNCATE` correctly, which required |
| 930 | `unistd.h`. |
| 931 | |
| 932 | Fixing `ftruncate()` in turn causes a build warning/error with legacy |
| 933 | MinGW/MSYS1 due to an offset type size mismatch. This env misses to |
| 934 | detect `HAVE_FILE_OFFSET_BITS`, which may be a reason. This patch |
| 935 | force-disables `HAVE_FTRUNCATE` for this platform. |
| 936 | |
| 937 | Reviewed-by: Daniel Stenberg |
| 938 | |
| 939 | Closes #9687 |
| 940 | |
| 941 | - autotools: allow unix sockets on Windows |
| 942 | |
| 943 | Fixes: https://github.com/curl/curl-for-win/blob/73a070d96fd906fdee929e2f1f00a9149fb39239/curl-autotools.sh#L44-L47 |
| 944 | |
| 945 | On Windows this feature is present, but not the header used in the |
| 946 | detection logic. It also requires an elaborate enabler logic |
| 947 | (as seen in `lib/curl_setup.h`). Let's always allow it and let the |
| 948 | lib code deal with the details. |
| 949 | |
| 950 | Closes #9688 |
| 951 | |
| 952 | - cmake: add missing inet_ntop check |
| 953 | |
| 954 | This adds the missing half of the check, next to the other half |
| 955 | already present in `lib/curl_config.h.cmake`. |
| 956 | |
| 957 | Force disable `HAVE_INET_NTOP` for old MSVC where it caused compiler |
| 958 | warnings. |
| 959 | |
| 960 | Reviewed-by: Daniel Stenberg |
| 961 | |
| 962 | Closes #9689 |
| 963 | |
| 964 | Daniel Stenberg (11 Oct 2022) |
| 965 | - RELEASE-NOTES: synced |
| 966 | |
| 967 | - [bsergean on github brought this change] |
| 968 | |
| 969 | asyn-ares: set hint flags when calling ares_getaddrinfo |
| 970 | |
| 971 | The hint flag is ARES_AI_NUMERICSERV, and it will save a call to |
| 972 | getservbyname or getservbyname_r to set it. |
| 973 | |
| 974 | Closes #9694 |
| 975 | |
| 976 | - header.d: add category smtp and imap |
| 977 | |
| 978 | They were previously (erroneously) added manually to tool_listhelp.c |
| 979 | which would make them get removed again when the file is updated next |
| 980 | time, unless added correctly here in header.d |
| 981 | |
| 982 | Follow-up to 2437fac01 |
| 983 | |
| 984 | Closes #9690 |
| 985 | |
| 986 | - curl/get_url_file_name: use libcurl URL parser |
| 987 | |
| 988 | To avoid URL tricks, use the URL parser for this. |
| 989 | |
| 990 | This update changes curl's behavior slightly in that it will ignore the |
| 991 | possible query part from the URL and only use the file name from the |
| 992 | actual path from the URL. I consider it a bugfix. |
| 993 | |
| 994 | "curl -O localhost/name?giveme-giveme" will now save the output in the |
| 995 | local file named 'name' |
| 996 | |
| 997 | Updated test 1210 to verify |
| 998 | |
| 999 | Assisted-by: Jay Satiro |
| 1000 | |
| 1001 | Closes #9684 |
| 1002 | |
| 1003 | - [Martin Ć
gren brought this change] |
| 1004 | |
| 1005 | docs: fix grammar around needing pass phrase |
| 1006 | |
| 1007 | "You never needed a pass phrase" reads like it's about to be followed by |
| 1008 | something like "until version so-and-so", but that is not what is |
| 1009 | intended. Change to "You never need a pass phrase". There are two |
| 1010 | instances of this text, so make sure to update both. |
| 1011 | |
| 1012 | - [Xiang Xiao brought this change] |
| 1013 | |
| 1014 | cmake: add the check of HAVE_SOCKETPAIR |
| 1015 | |
| 1016 | which is used by Curl_socketpair |
| 1017 | |
| 1018 | Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com> |
| 1019 | |
| 1020 | Closes #9686 |
| 1021 | |
| 1022 | - curl/add_file_name_to_url: use the libcurl URL parser |
| 1023 | |
| 1024 | instead of the custom error-prone parser, to extract and update the path |
| 1025 | of the given URL |
| 1026 | |
| 1027 | Closes #9683 |
| 1028 | |
| 1029 | - single_transfer: use the libcurl URL parser when appending query parts |
| 1030 | |
| 1031 | Instead of doing "manual" error-prone parsing in another place. |
| 1032 | |
| 1033 | Used when --data contents is added to the URL query when -G is provided. |
| 1034 | |
| 1035 | Closes #9681 |
| 1036 | |
| 1037 | - ws: fix buffer pointer use in the callback loop |
| 1038 | |
| 1039 | Closes #9678 |
| 1040 | |
| 1041 | - [Petr Å tetiar brought this change] |
| 1042 | |
| 1043 | curl-wolfssl.m4: error out if wolfSSL is not usable |
| 1044 | |
| 1045 | When I explicitly declare, that I would like to have curl built with |
| 1046 | wolfSSL support using `--with-wolfssl` configure option, then I would |
| 1047 | expect, that either I endup with curl having that support, for example |
| 1048 | in form of https support or it wouldn't be available at all. |
| 1049 | |
| 1050 | Downstream projects like for example OpenWrt build curl wolfSSL variant |
| 1051 | with `--with-wolfssl` already, but in certain corner cases it does fail: |
| 1052 | |
| 1053 | configure:25299: checking for wolfSSL_Init in -lwolfssl |
| 1054 | configure:25321: x86_64-openwrt-linux-musl-gcc -o conftest [snip] |
| 1055 | In file included from target-x86_64_musl/usr/include/wolfssl/wolfcrypt/dsa.h:33, |
| 1056 | from target-x86_64_musl/usr/include/wolfssl/wolfcrypt/asn_public.h:35, |
| 1057 | from target-x86_64_musl/usr/include/wolfssl/ssl.h:35, |
| 1058 | from conftest.c:47: |
| 1059 | target-x86_64_musl/usr/include/wolfssl/wolfcrypt/integer.h:37:14: fatal error: wolfssl/wolfcrypt/sp_int.h: No such file or directory |
| 1060 | #include <wolfssl/wolfcrypt/sp_int.h> |
| 1061 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 1062 | compilation terminated. |
| 1063 | |
| 1064 | and in the end thus produces curl without https support: |
| 1065 | |
| 1066 | curl: (1) Protocol "https" not supported or disabled in libcurl |
| 1067 | |
| 1068 | So fix it, by making the working wolfSSL mandatory and error out in |
| 1069 | configure step when that's not the case: |
| 1070 | |
| 1071 | checking for wolfSSL_Init in -lwolfssl... no |
| 1072 | configure: error: --with-wolfssl but wolfSSL was not found or doesn't work |
| 1073 | |
| 1074 | References: https://github.com/openwrt/packages/issues/19005 |
| 1075 | References: https://github.com/openwrt/packages/issues/19547 |
| 1076 | Signed-off-by: Petr Å tetiar <ynezz@true.cz> |
| 1077 | |
| 1078 | Closes #9682 |
| 1079 | |
| 1080 | - tool_getparam: pass in the snprintf("%.*s") string length as 'int' |
| 1081 | |
| 1082 | Reported by Coverity CID 1515928 |
| 1083 | |
| 1084 | Closes #9679 |
| 1085 | |
| 1086 | - [Paul Seligman brought this change] |
| 1087 | |
| 1088 | ws: minor fixes for web sockets without the CONNECT_ONLY flag |
| 1089 | |
| 1090 | - Fixed an issue where is_in_callback was getting cleared when using web |
| 1091 | sockets with debug logging enabled |
| 1092 | - Ensure the handle is is_in_callback when calling out to fwrite_func |
| 1093 | - Change the write vs. send_data decision to whether or not the handle |
| 1094 | is in CONNECT_ONLY mode. |
| 1095 | - Account for buflen not including the header length in curl_ws_send |
| 1096 | |
| 1097 | Closes #9665 |
| 1098 | |
| 1099 | Marc Hoersken (8 Oct 2022) |
| 1100 | - CI/cirrus: merge existing macOS jobs into a job matrix |
| 1101 | |
| 1102 | Ref: #9627 |
| 1103 | Reviewed-by: Philip H. |
| 1104 | |
| 1105 | Closes #9672 |
| 1106 | |
| 1107 | Daniel Stenberg (8 Oct 2022) |
| 1108 | - strcase: add and use Curl_timestrcmp |
| 1109 | |
| 1110 | This is a strcmp() alternative function for comparing "secrets", |
| 1111 | designed to take the same time no matter the content to not leak |
| 1112 | match/non-match info to observers based on how fast it is. |
| 1113 | |
| 1114 | The time this function takes is only a function of the shortest input |
| 1115 | string. |
| 1116 | |
| 1117 | Reported-by: Trail of Bits |
| 1118 | |
| 1119 | Closes #9658 |
| 1120 | |
| 1121 | - tool_getparam: split out data_urlencode() into its own function |
| 1122 | |
| 1123 | Closes #9673 |
| 1124 | |
| 1125 | - connect: fix Curl_updateconninfo for TRNSPRT_UNIX |
| 1126 | |
| 1127 | Reported-by: Vasiliy Ulyanov |
| 1128 | Fixes #9664 |
| 1129 | Closes #9670 |
| 1130 | |
| 1131 | - ws: fix Coverity complaints |
| 1132 | |
| 1133 | Coverity pointed out several flaws where variables remained |
| 1134 | uninitialized after forks. |
| 1135 | |
| 1136 | Follow-up to e3f335148adc6742728f |
| 1137 | |
| 1138 | Closes #9666 |
| 1139 | |
| 1140 | Marc Hoersken (7 Oct 2022) |
| 1141 | - CI/GHA: merge msh3 and openssl3 builds into linux workflow |
| 1142 | |
| 1143 | Continue work on merging all Linux workflows into one file. |
| 1144 | |
| 1145 | Follow up to #9501 |
| 1146 | Closes #9646 |
| 1147 | |
| 1148 | Daniel Stenberg (7 Oct 2022) |
| 1149 | - curl_ws_send.3: call the argument 'fragsize' |
| 1150 | |
| 1151 | Since WebSocket works with "fragments" not "frames" |
| 1152 | |
| 1153 | Closes #9668 |
| 1154 | |
| 1155 | - easy: avoid Intel error #2312: pointer cast involving 64-bit pointed-to type |
| 1156 | |
| 1157 | Follow-up to e3f335148adc6742728ff8 |
| 1158 | |
| 1159 | Closes #9669 |
| 1160 | |
| 1161 | - tool_main: exit at once if out of file descriptors |
| 1162 | |
| 1163 | If the main_checkfds function cannot create new file descriptors in an |
| 1164 | attempt to detect of stdin, stdout or stderr are closed. |
| 1165 | |
| 1166 | Also changed the check to use fcntl() to check if the descriptors are |
| 1167 | open, which avoids superfluously calling pipe() if they all already are. |
| 1168 | |
| 1169 | Follow-up to facfa19cdd4d0094 |
| 1170 | |
| 1171 | Reported-by: Trail of Bits |
| 1172 | |
| 1173 | Closes #9663 |
| 1174 | |
| 1175 | - websockets: remodeled API to support 63 bit frame sizes |
| 1176 | |
| 1177 | curl_ws_recv() now receives data to fill up the provided buffer, but can |
| 1178 | return a partial fragment. The function now also get a pointer to a |
| 1179 | curl_ws_frame struct with metadata that also mentions the offset and |
| 1180 | total size of the fragment (of which you might be receiving a smaller |
| 1181 | piece). This way, large incoming fragments will be "streamed" to the |
| 1182 | application. When the curl_ws_frame struct field 'bytesleft' is 0, the |
| 1183 | final fragment piece has been delivered. |
| 1184 | |
| 1185 | curl_ws_recv() was also adjusted to work with a buffer size smaller than |
| 1186 | the fragment size. (Possibly needless to say as the fragment size can |
| 1187 | now be 63 bit large). |
| 1188 | |
| 1189 | curl_ws_send() now supports sending a piece of a fragment, in a |
| 1190 | streaming manner, in addition to sending the entire fragment in a single |
| 1191 | call if it is small enough. To send a huge fragment, curl_ws_send() can |
| 1192 | be used to send it in many small calls by first telling libcurl about |
| 1193 | the total expected fragment size, and then send the payload in N number |
| 1194 | of separate invokes and libcurl will stream those over the wire. |
| 1195 | |
| 1196 | The struct curl_ws_meta() returns is now called 'curl_ws_frame' and it |
| 1197 | has been extended with two new fields: *offset* and *bytesleft*. To help |
| 1198 | describe the passed on data chunk when a fragment is delivered in many |
| 1199 | smaller pieces. |
| 1200 | |
| 1201 | The documentation has been updated accordingly. |
| 1202 | |
| 1203 | Closes #9636 |
| 1204 | |
| 1205 | - [Patrick Monnerat brought this change] |
| 1206 | |
| 1207 | docs/examples: avoid deprecated options in examples where possible |
| 1208 | |
| 1209 | Example programs targeting a deprecated feature/option are commented with |
| 1210 | a warning about it. |
| 1211 | Other examples are adapted to not use deprecated options. |
| 1212 | |
| 1213 | Closes #9661 |
| 1214 | |
| 1215 | Viktor Szakats (6 Oct 2022) |
| 1216 | - cmake: fix enabling websocket support |
| 1217 | |
| 1218 | Follow-up from 664249d095275ec532f55dd1752d80c8c1093a77 |
| 1219 | |
| 1220 | Closes #9660 |
| 1221 | |
| 1222 | - tidy-up: delete parallel/unused feature flags |
| 1223 | |
| 1224 | Detecting headers and lib separately makes sense when headers come in |
| 1225 | variations or with extra ones, but this wasn't the case here. These were |
| 1226 | duplicate/parallel macros that we had to keep in sync with each other |
| 1227 | for a working build. This patch leaves a single macro for each of these |
| 1228 | dependencies: |
| 1229 | |
| 1230 | - Rely on `HAVE_LIBZ`, delete parallel `HAVE_ZLIB_H`. |
| 1231 | |
| 1232 | Also delete CMake logic making sure these two were in sync, along with |
| 1233 | a toggle to turn off that logic, called `CURL_SPECIAL_LIBZ`. |
| 1234 | |
| 1235 | Also delete stray `HAVE_ZLIB` defines. |
| 1236 | |
| 1237 | There is also a `USE_ZLIB` variant in `lib/config-dos.h`. This patch |
| 1238 | retains it for compatibility and deprecates it. |
| 1239 | |
| 1240 | - Rely on `USE_LIBSSH2`, delete parallel `HAVE_LIBSSH2_H`. |
| 1241 | |
| 1242 | Also delete `LIBSSH2_WIN32`, `LIBSSH2_LIBRARY` from |
| 1243 | `winbuild/MakefileBuild.vc`, these have a role when building libssh2 |
| 1244 | itself. And `CURL_USE_LIBSSH`, which had no use at all. |
| 1245 | |
| 1246 | Also delete stray `HAVE_LIBSSH2` defines. |
| 1247 | |
| 1248 | - Rely on `USE_LIBSSH`, delete parallel `HAVE_LIBSSH_LIBSSH_H`. |
| 1249 | |
| 1250 | Also delete `LIBSSH_WIN32`, `LIBSSH_LIBRARY` and `HAVE_LIBSSH` from |
| 1251 | `winbuild/MakefileBuild.vc`, these were the result of copy-pasting the |
| 1252 | libssh2 line, and were not having any use. |
| 1253 | |
| 1254 | - Delete unused `HAVE_LIBPSL_H` and `HAVE_LIBPSL`. |
| 1255 | |
| 1256 | Reviewed-by: Daniel Stenberg |
| 1257 | |
| 1258 | Closes #9652 |
| 1259 | |
| 1260 | Daniel Stenberg (6 Oct 2022) |
| 1261 | - netrc: compare user name case sensitively |
| 1262 | |
| 1263 | User name comparisions in netrc need to match the case. |
| 1264 | |
| 1265 | Closes #9657 |
| 1266 | |
| 1267 | - CURLOPT_COOKIEFILE: insist on "" for enable-without-file |
| 1268 | |
| 1269 | The former way that also suggested using a non-existing file to just |
| 1270 | enable the cookie engine could lead to developers maybe a bit carelessly |
| 1271 | guessing a file name that will not exist, and then in a future due to |
| 1272 | circumstances, such a file could be made to exist and then accidentally |
| 1273 | libcurl would read cookies not actually meant to. |
| 1274 | |
| 1275 | Reported-by: Trail of bits |
| 1276 | |
| 1277 | Closes #9654 |
| 1278 | |
| 1279 | - tests/Makefile: remove run time stats from ci-test |
| 1280 | |
| 1281 | The ci-test is the normal makefile target invoked in CI jobs. This has |
| 1282 | been using the -r option to runtests.pl since a long time, but I find |
| 1283 | that it mostly just adds many lines to the test output report without |
| 1284 | anyone caring much about those stats. |
| 1285 | |
| 1286 | Remove it. |
| 1287 | |
| 1288 | Closes #9656 |
| 1289 | |
| 1290 | - [Patrick Monnerat brought this change] |
| 1291 | |
| 1292 | tool: reorganize function c_escape around a dynbuf |
| 1293 | |
| 1294 | This is a bit shorter and a lot safer. |
| 1295 | |
| 1296 | Substrings of unescaped characters are added by a single call to reduce |
| 1297 | overhead. |
| 1298 | |
| 1299 | Extend test 1465 to handle more kind of escapes. |
| 1300 | |
| 1301 | Closes #9653 |
| 1302 | |
| 1303 | Jay Satiro (5 Oct 2022) |
| 1304 | - CURLOPT_HTTPPOST.3: bolden the deprecation notice |
| 1305 | |
| 1306 | Ref: https://github.com/curl/curl/pull/9621 |
| 1307 | |
| 1308 | Closes https://github.com/curl/curl/pull/9637 |
| 1309 | |
| 1310 | Daniel Stenberg (5 Oct 2022) |
| 1311 | - [John Bampton brought this change] |
| 1312 | |
| 1313 | misc: fix spelling in docs and comments |
| 1314 | |
| 1315 | also: remove outdated sentence |
| 1316 | |
| 1317 | Closes #9644 |
| 1318 | |
| 1319 | - [Patrick Monnerat brought this change] |
| 1320 | |
| 1321 | tool: avoid generating ambiguous escaped characters in --libcurl |
| 1322 | |
| 1323 | C string hexadecimal-escaped characters may have more than 2 digits. |
| 1324 | This results in a wrong C compiler interpretation of a 2-digit escaped |
| 1325 | character when followed by an hex digit character. |
| 1326 | |
| 1327 | The solution retained here is to represent such characters as 3-digit |
| 1328 | octal escapes. |
| 1329 | |
| 1330 | Adjust and extend test 1465 for this case. |
| 1331 | |
| 1332 | Closes #9643 |
| 1333 | |
| 1334 | - configure: the ngtcp2 option should default to 'no' |
| 1335 | |
| 1336 | While still experimental. |
| 1337 | |
| 1338 | Bug: https://curl.se/mail/lib-2022-10/0007.html |
| 1339 | Reported-by: Daniel Hallberg |
| 1340 | |
| 1341 | Closes #9650 |
| 1342 | |
| 1343 | - CURLOPT_MIMEPOST.3: add an (inline) example |
| 1344 | |
| 1345 | Reported-by: Jay Satiro |
| 1346 | Bug: https://github.com/curl/curl/pull/9637#issuecomment-1268070723 |
| 1347 | |
| 1348 | Closes #9649 |
| 1349 | |
| 1350 | Viktor Szakats (5 Oct 2022) |
| 1351 | - Makefile.m32: exclude libs & libpaths for shared mode exes [ci skip] |
| 1352 | |
| 1353 | Exclude linker flags specifying depedency libs and libpaths, when |
| 1354 | building against `libcurl.dll`. In such case these options are not |
| 1355 | necessary (but may cause errors if not/wrongly configured.) |
| 1356 | |
| 1357 | Also move and reword a comment on `CPPFLAGS` to not apply to |
| 1358 | `UNICODE` options. These are necessary for all build targets. |
| 1359 | |
| 1360 | Closes #9651 |
| 1361 | |
| 1362 | Jay Satiro (5 Oct 2022) |
| 1363 | - runtests: fix uninitialized value on ignored tests |
| 1364 | |
| 1365 | - Don't show TESTFAIL message (ie tests failed which aren't ignored) if |
| 1366 | only ignored tests failed. |
| 1367 | |
| 1368 | Before: |
| 1369 | IGNORED: failed tests: 571 612 1056 |
| 1370 | TESTDONE: 1214 tests out of 1217 reported OK: 99% |
| 1371 | Use of uninitialized value $failed in concatenation (.) or string at |
| 1372 | ./runtests.pl line 6290. |
| 1373 | TESTFAIL: These test cases failed: |
| 1374 | |
| 1375 | After: |
| 1376 | IGNORED: failed tests: 571 612 1056 |
| 1377 | TESTDONE: 1214 tests out of 1217 reported OK: 99% |
| 1378 | |
| 1379 | Closes https://github.com/curl/curl/pull/9648 |
| 1380 | |
| 1381 | - cirrus: use make LDFLAGS=-all-static instead of curl_LDFLAGS |
| 1382 | |
| 1383 | - Correct the use of -all-static for static Windows CI builds. |
| 1384 | |
| 1385 | curl_LDFLAGS was removed from the makefile when metalink support was |
| 1386 | removed. LDFLAGS=-all-static is passed to make only, because it is not a |
| 1387 | valid option for configure compilation tests. |
| 1388 | |
| 1389 | Closes https://github.com/curl/curl/pull/9633 |
| 1390 | |
| 1391 | Viktor Szakats (4 Oct 2022) |
| 1392 | - Makefile.m32: fix regression with tool_hugehelp [ci skip] |
| 1393 | |
| 1394 | In a recent commit I mistakenly deleted this logic, after seeing a |
| 1395 | reference to a filename ending with `.cvs` and thinking it must have |
| 1396 | been long gone. Turns out this is an existing file. Restore the rule |
| 1397 | and the necessary `COPY` definitions with it. |
| 1398 | |
| 1399 | The restored logic is required for a successful build on a bare source |
| 1400 | tree (as opposed to a source release tarball). |
| 1401 | |
| 1402 | Also shorten an existing condition similar to the one added in this |
| 1403 | patch. |
| 1404 | |
| 1405 | Regression since 07a0047882dd3f1fbf73486c5dd9c15370877ad6 |
| 1406 | |
| 1407 | Closes #9645 |
| 1408 | |
| 1409 | - Makefile.m32: deduplicate build rules [ci skip] |
| 1410 | |
| 1411 | After this patch, we reduce the three copies of most `Makefile.m32` |
| 1412 | logic to one. This now resides in `lib/Makefile.m32`. It makes future |
| 1413 | updates easier, the code shorter, with a small amount of added |
| 1414 | complexity. |
| 1415 | |
| 1416 | `Makefile.m32` reduction: |
| 1417 | |
| 1418 | | | bytes | LOC total | blank | comment | code | |
| 1419 | |-------------------|-------:|----------:|-------:|---------:|------:| |
| 1420 | | 7.85.0 | 34772 | 1337 | 79 | 192 | 1066 | |
| 1421 | | before this patch | 17601 | 625 | 62 | 106 | 457 | |
| 1422 | | after this patch | 11680 | 392 | 52 | 104 | 236 | |
| 1423 | |
| 1424 | Details: |
| 1425 | |
| 1426 | - Change rules to create objects for the `v*` subdirs in the `lib` dir. |
| 1427 | This allows to use a shared compile rule and assumes that filenames |
| 1428 | are not (and will not be) colliding across these directories. |
| 1429 | `Makefile.m32` now also stores a list of these subdirs. They are |
| 1430 | changing rarely though. |
| 1431 | |
| 1432 | - Sync as much as possible between the three `Makefile.m32` scripts' |
| 1433 | rules and their source/target sections. |
| 1434 | |
| 1435 | - After this patch `CPPFLAGS` are all applied to the `src` sources once |
| 1436 | again. This matches the behaviour of cmake/autotools. Only zlib ones |
| 1437 | are actually required there. |
| 1438 | |
| 1439 | - Use `.rc` names from `Makefile.inc` instead of keeping a duplicate. |
| 1440 | |
| 1441 | - Change examples to link `libcurl.dll` by default. This makes building |
| 1442 | trivial, even as a cross-build: |
| 1443 | `CC=x86_64-w64-mingw32-gcc make -f Makefile.m32` |
| 1444 | To run them, you need to move/copy or add-to-path `libcurl.dll`. |
| 1445 | You can select static mode via `CFG=-static`. |
| 1446 | |
| 1447 | - List more of the `Makefile.m32` config variables. |
| 1448 | |
| 1449 | - Drop `.rc` support from examples. It made it fragile without much |
| 1450 | benefit. |
| 1451 | |
| 1452 | - Include a necessary system lib for the `externalsocket.c` example. |
| 1453 | |
| 1454 | - Exclude unnecessary systems libs when building in `-dyn` mode. |
| 1455 | |
| 1456 | Closes #9642 |
| 1457 | |
| 1458 | Daniel Stenberg (4 Oct 2022) |
| 1459 | - RELEASE-NOTES: synced |
| 1460 | |
| 1461 | - CURLOPT_COOKIELIST.3: fix formatting mistake |
| 1462 | |
| 1463 | Also, updated manpage-syntax.pl to make it detect this error in test |
| 1464 | 1173. |
| 1465 | |
| 1466 | Reported-by: ProceduralMan on github |
| 1467 | Fixes #9639 |
| 1468 | Closes #9640 |
| 1469 | |
| 1470 | - [Jay Satiro brought this change] |
| 1471 | |
| 1472 | connect: change verbose IPv6 address:port to [address]:port |
| 1473 | |
| 1474 | - Use brackets for the IPv6 address shown in verbose message when the |
| 1475 | format is address:port so that it is less confusing. |
| 1476 | |
| 1477 | Before: Trying 2606:4700:4700::1111:443... |
| 1478 | After: Trying [2606:4700:4700::1111]:443... |
| 1479 | |
| 1480 | Bug: https://curl.se/mail/archive-2022-02/0041.html |
| 1481 | Reported-by: David Hu |
| 1482 | |
| 1483 | Closes #9635 |
| 1484 | |
| 1485 | Viktor Szakats (3 Oct 2022) |
| 1486 | - Makefile.m32: major rework [ci skip] |
| 1487 | |
| 1488 | This patch overhauls `Makefile.m32` scripts, fixing a list of quirks, |
| 1489 | making its behaviour and customization envvars align better with other |
| 1490 | build systems, aiming for less code, that is easier to read, use and |
| 1491 | maintain. |
| 1492 | |
| 1493 | Details: |
| 1494 | - Rename customization envvars: |
| 1495 | `CURL_CC` -> `CC` |
| 1496 | `CURL_RC` -> `RC` |
| 1497 | `CURL_AR` -> `AR` |
| 1498 | `CURL_LDFLAG_EXTRAS_DLL` -> `CURL_LDFLAGS_LIB` |
| 1499 | `CURL_LDFLAG_EXTRAS_EXE` -> `CURL_LDFLAGS_BIN` |
| 1500 | - Drop `CURL_STRIP` and `CURL_RANLIB`. These tools are no longer used. |
| 1501 | - Accept `CFLAGS`, `CPPFLAGS`, `RCFLAGS`, `LDFLAGS` and `LIBS` envvars. |
| 1502 | - Drop `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, `CURL_RCFLAG_EXTRAS` in |
| 1503 | favor of the above. |
| 1504 | - Do not automatically enable `zlib` with `libssh2`. `zlib` is optional |
| 1505 | with `libssh2`. |
| 1506 | - Omit unnecessary `CPPFLAGS` options when building `curl.exe` and |
| 1507 | examples. |
| 1508 | - Drop support for deprecated `-winssl` `CFG` option. Use `-schannel` |
| 1509 | instead. |
| 1510 | - Avoid late evaluation where not necessary (`=` -> `:=`). |
| 1511 | - Drop support for `CURL_DLL_A_SUFFIX` to override the implib suffix. |
| 1512 | Instead, use the standard naming scheme by default: `libcurl.dll.a`. |
| 1513 | The toolchain recognizes the name, and selects it automatically when |
| 1514 | asking for a `-shared` vs. `-static` build. |
| 1515 | - Stop applying `strip` to `libcurl.a`. Follow-up from |
| 1516 | 16a58e9f93c7e89e1f87720199388bcfcfa148a4. There was no debug info to |
| 1517 | strip since then. |
| 1518 | - Stop setting `-O3`, `-W`, `-Wall` options. You can add these to |
| 1519 | `CFLAGS` as desired. |
| 1520 | - Always enable `-DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG` with OpenSSL, |
| 1521 | to avoid that vulnerability on Windows. |
| 1522 | - Add `-lbrotlicommon` to `LIBS` when using `brotli`. |
| 1523 | - Do not enable `-nghttp3` without `-ngtcp2`. |
| 1524 | - `-ssh2` and `-rtmp` options no longer try to auto-select a TLS-backend. |
| 1525 | You need to set the backend explicitly. This scales better and avoids |
| 1526 | issues with certain combinations (e.g. `libssh2` + `wolfssl` with no |
| 1527 | `schannel`). |
| 1528 | - Default to OpenSSL TLS-backend with `ngtcp2`. Possible to override via |
| 1529 | `NGTCP2_LIBS`. |
| 1530 | - Old, alternate method of enabling components (e.g. `SSH2=1`) no longer |
| 1531 | supported. |
| 1532 | - Delete `SPNEGO` references. They were no-ops. |
| 1533 | - Drop support for Win9x environments. |
| 1534 | - Allow setting `OPENSSL_LIBS` independently from `OPENSSL_LIBPATH`. |
| 1535 | - Support autotools/CMake `libssh2` builds by default. |
| 1536 | - Respect `CURL_DLL_SUFFIX` in `-dyn` mode when building `curl.exe` and |
| 1537 | examples. |
| 1538 | - Assume standard directory layout with `LIBCARES_PATH`. (Instead of the |
| 1539 | long gone embedded one.) |
| 1540 | - Stop static linking with c-ares by default. Add |
| 1541 | `CPPFLAGS=-DCARES_STATICLIB` to enable it. |
| 1542 | - Reorganize internal layout to avoid redundancy and emit clean diffs |
| 1543 | between src/lib and example make files. |
| 1544 | - Delete unused variables. |
| 1545 | - Code cleanups/rework. |
| 1546 | - Comment and indentation fixes. |
| 1547 | |
| 1548 | Closes #9632 |
| 1549 | |
| 1550 | - scripts/release-notes.pl: strip ci skip tag [ci skip] |
| 1551 | |
| 1552 | Ref: https://github.com/curl/curl/commit/e604a82cae922bf86403a94f5803ac5e4303ae97#commitcomment-85637701 |
| 1553 | |
| 1554 | Reviewed-by: Daniel Stenberg |
| 1555 | |
| 1556 | Closes #9634 |
| 1557 | |
| 1558 | - Makefile.m32: delete legacy component bits [ci skip] |
| 1559 | |
| 1560 | - Drop auto-detection of OpenSSL 1.0.2 and earlier. Now always defaulting |
| 1561 | to OpenSSL 1.1.0 and later, LibreSSL and BoringSSL. |
| 1562 | |
| 1563 | - Drop `Invalid path to OpenSSL package` detection. OpenSSL has been |
| 1564 | using a standard file layout since 1.1.0, so this seems unnecessary |
| 1565 | now. |
| 1566 | |
| 1567 | - Drop special logic to enable Novell LDAP SDK support. |
| 1568 | |
| 1569 | - Drop special logic to enable OpenLDAP LDAP SDK support. This seems |
| 1570 | to be distinct from native OpenLDAP, with support implemented inside |
| 1571 | `lib/ldap.c` (vs. `lib/openldap.c`) back when the latter did not exist |
| 1572 | yet in curl. |
| 1573 | |
| 1574 | - Add `-lwldap32` only if there is no other LDAP library (either native |
| 1575 | OpenLDAP, or SDKs above) present. |
| 1576 | |
| 1577 | - Update `doc/INSTALL.md` accordingly. |
| 1578 | |
| 1579 | After this patch, it's necessary to make configration changes when using |
| 1580 | OpenSSL 1.0.2 or earlier, or the two LDAP SDKs. |
| 1581 | |
| 1582 | OpenSSL 1.0.2 and earlier: |
| 1583 | ``` |
| 1584 | export OPENSSL_INCLUDE = <path-to-openssl>/outinc |
| 1585 | export OPENSSL_LIBPATH = <path-to-openssl>/out |
| 1586 | export OPENSSL_LIBS = -lssl32 -leay32 -lgdi32 |
| 1587 | ``` |
| 1588 | |
| 1589 | Novell LDAP SDK, previously enabled via `USE_LDAP_NOVELL=1`: |
| 1590 | ``` |
| 1591 | export CURL_CFLAG_EXTRAS = -I<path-to-sdk>/inc -DCURL_HAS_NOVELL_LDAPSDK |
| 1592 | export CURL_LDFLAG_EXTRAS = -L<path-to-sdk>/lib/mscvc -lldapsdk -lldapssl -lldapx |
| 1593 | ``` |
| 1594 | |
| 1595 | OpenLDAP LDAP SDK, previously enabled via `USE_LDAP_OPENLDAP=1`: |
| 1596 | ``` |
| 1597 | export CURL_CFLAG_EXTRAS = -I<path-to-sdk>/include -DCURL_HAS_OPENLDAP_LDAPSDK |
| 1598 | export CURL_LDFLAG_EXTRAS = -L<path-to-sdk>/lib -lldap -llber |
| 1599 | ``` |
| 1600 | |
| 1601 | I haven't tested these scenarios, and in general we recommend using |
| 1602 | a recent OpenSSL release. Also, WinLDAP (the Windows default) and |
| 1603 | OpenLDAP (via `-DUSE_OPENLDAP`) are the LDAP options actively worked on |
| 1604 | in curl. |
| 1605 | |
| 1606 | Closes #9631 |
| 1607 | |
| 1608 | Daniel Stenberg (2 Oct 2022) |
| 1609 | - vauth/ntlm.h: make line shorter than 80 columns |
| 1610 | |
| 1611 | Follow-up from 265fbd937 |
| 1612 | |
| 1613 | Viktor Szakats (1 Oct 2022) |
| 1614 | - docs: update sourceforge project links [ci skip] |
| 1615 | |
| 1616 | SourceForge projects can now choose between two hostnames, with .io and |
| 1617 | .net ending. Both support HTTPS by default now. Opening the other variant |
| 1618 | will perm-redirected to the one chosen by the project. |
| 1619 | |
| 1620 | The .io -> .net redirection is done insecurely. |
| 1621 | |
| 1622 | Let's update the URLs to point to the current canonical endpoints to |
| 1623 | avoid any redirects. |
| 1624 | |
| 1625 | Closes #9630 |
| 1626 | |
| 1627 | Daniel Stenberg (1 Oct 2022) |
| 1628 | - curl_url_set.3: document CURLU_APPENDQUERY proper |
| 1629 | |
| 1630 | Listed among the other supported flags. |
| 1631 | |
| 1632 | Reported-by: Robby Simpson |
| 1633 | Fixes #9628 |
| 1634 | Closes #9629 |
| 1635 | |
| 1636 | Viktor Szakats (1 Oct 2022) |
| 1637 | - Makefile.m32: cleanups and fixes [ci skip] |
| 1638 | |
| 1639 | - Add `-lcrypt32` once, and add it always for simplicity. |
| 1640 | - Delete broken link and reference to the pre-Vista WinIDN add-on. |
| 1641 | MS no longer distribute it. |
| 1642 | - Delete related `WINIDN_PATH` option. IDN is a system lib since Vista. |
| 1643 | - Sync `LIBCARES_PATH` default with the rest of dependencies. |
| 1644 | - Delete version numbers from dependency path defaults. |
| 1645 | - `libgsasl` package is now called `gsasl`. |
| 1646 | - Delete `libexpat` and `libxml2` references. No longer used by curl. |
| 1647 | - Delete `Edit the path below...` comments. We recommend to predefine |
| 1648 | those envvars instead. |
| 1649 | - `libcares.a` is not an internal dependency anymore. Stop using it as |
| 1650 | such. |
| 1651 | - `windres` `--include-dir` -> `-I`, `-F` -> `--target=` for readability. |
| 1652 | - Delete `STRIP`, `CURL_STRIP`, `AR` references from `src/Makefile.m32`. |
| 1653 | They were never used. |
| 1654 | - Stop to `clean` some objects twice in `src/Makefile.m32`. |
| 1655 | - Delete cvs-specific leftovers. |
| 1656 | - Finish resource support in examples make file. |
| 1657 | - Delete `-I<root>/lib` from examples make file. |
| 1658 | - Fix copyright start year in examples make file. |
| 1659 | - Delete duplicate `ftpuploadresume` input in examples make file. |
| 1660 | - Sync OpenSSL lib order, `SYNC` support, `PROOT` use, dependency path |
| 1661 | defaults, variables names and other internal bits between the three |
| 1662 | make files. |
| 1663 | - `lib/Makefile.m32` accepted custom options via `DLL_LIBS` envvar. This |
| 1664 | was lib-specific and possibly accidental. Use `CURL_LDFLAG_EXTRAS_DLL` |
| 1665 | envvar for the same effect. |
| 1666 | - Fix linking `curl.exe` and examples to wrong static libs with |
| 1667 | auto-detected OpenSSL 1.0.2 or earlier. |
| 1668 | - Add `-lgdi32` for OpenSSL 1.0.2 and earlier only. |
| 1669 | - Add link to Novell LDAP SDK and use a relative default path. Latest |
| 1670 | version is from 2016, linked to an outdated OpenSSL 1.0.1. |
| 1671 | - Whitespace and comment cleanups. |
| 1672 | |
| 1673 | TODO in a next commit: |
| 1674 | |
| 1675 | Delete built-in detection/logic for OpenSSL 1.0.2 and earlier, the Novell |
| 1676 | LDAP SDK and the other LDAP SDK (which is _not_ OpenLDAP). Write up the |
| 1677 | necessary custom envvars to configure them. |
| 1678 | |
| 1679 | Closes #9616 |
| 1680 | |
| 1681 | Daniel Stenberg (30 Sep 2022) |
| 1682 | - RELEASE-NOTES: synced |
| 1683 | |
| 1684 | - [Matt Holt brought this change] |
| 1685 | |
| 1686 | HTTP3.md: update Caddy example |
| 1687 | |
| 1688 | Closes #9623 |
| 1689 | |
| 1690 | - easy: fix the altsvc init for curl_easy_duphandle |
| 1691 | |
| 1692 | It was using the old #ifdef which nothing sets anymore |
| 1693 | |
| 1694 | Closes #9624 |
| 1695 | |
| 1696 | - GHA: build tests in a separate step from the running of them |
| 1697 | |
| 1698 | ... to make the output smaller for when you want to look at test |
| 1699 | failures. |
| 1700 | |
| 1701 | Removed the examples build from msh3 |
| 1702 | |
| 1703 | Closes #9619 |
| 1704 | |
| 1705 | Viktor Szakats (29 Sep 2022) |
| 1706 | - ldap: delete stray CURL_HAS_MOZILLA_LDAP reference |
| 1707 | |
| 1708 | Added in 68b215157fdf69612edebdb220b3804822277822, while adding openldap |
| 1709 | support. This is also the single mention of this constant in the source |
| 1710 | tree and also in that commit. Based on these, it seems like an accident. |
| 1711 | |
| 1712 | Delete this reference. |
| 1713 | |
| 1714 | Reviewed-by: Daniel Stenberg |
| 1715 | |
| 1716 | Closes #9625 |
| 1717 | |
| 1718 | - docs: spelling nits |
| 1719 | |
| 1720 | - MingW -> MinGW (Minimalist GNU for Windows) |
| 1721 | - f.e. -> e.g. |
| 1722 | - some whitespace and punctuation. |
| 1723 | |
| 1724 | Reviewed-by: Daniel Stenberg |
| 1725 | |
| 1726 | Closes #9622 |
| 1727 | |
| 1728 | Daniel Stenberg (29 Sep 2022) |
| 1729 | - [Philip Heiduck brought this change] |
| 1730 | |
| 1731 | cirrus-ci: add macOS build with m1 |
| 1732 | |
| 1733 | Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> |
| 1734 | |
| 1735 | Closes #9565 |
| 1736 | |
| 1737 | - [Patrick Monnerat brought this change] |
| 1738 | |
| 1739 | lib: sanitize conditional exclusion around MIME |
| 1740 | |
| 1741 | The introduction of CURL_DISABLE_MIME came with some additional bugs: |
| 1742 | - Disabled MIME is compiled-in anyway if SMTP and/or IMAP is enabled. |
| 1743 | - CURLOPT_MIMEPOST, CURLOPT_MIME_OPTIONS and CURLOPT_HTTPHEADER are |
| 1744 | conditioned on HTTP, although also needed for SMTP and IMAP MIME mail |
| 1745 | uploads. |
| 1746 | |
| 1747 | In addition, the CURLOPT_HTTPHEADER and --header documentation does not |
| 1748 | mention their use for MIME mail. |
| 1749 | |
| 1750 | This commit fixes the problems above. |
| 1751 | |
| 1752 | Closes #9610 |
| 1753 | |
| 1754 | - [Thiago Suchorski brought this change] |
| 1755 | |
| 1756 | docs: minor grammar fixes |
| 1757 | |
| 1758 | Closes #9609 |
| 1759 | |
| 1760 | - CURLSHOPT_UNLOCKFUNC.3: the callback as no 'access' argument |
| 1761 | |
| 1762 | Probably a copy and paste error from the lock function man page. |
| 1763 | |
| 1764 | Reported-by: Robby Simpson |
| 1765 | Fixes #9612 |
| 1766 | Closes #9613 |
| 1767 | |
| 1768 | - CURLOPT_ACCEPT_ENCODING.3: remove "four" as they are five |
| 1769 | |
| 1770 | ... instead just list the supported encodings. |
| 1771 | |
| 1772 | Reported-by: ProceduralMan on github |
| 1773 | Fixes #9614 |
| 1774 | Closes #9615 |
| 1775 | |
| 1776 | Dan Fandrich (28 Sep 2022) |
| 1777 | - tests: Remove a duplicated keyword |
| 1778 | |
| 1779 | - docs: document more server names for test files |
| 1780 | |
| 1781 | Daniel Stenberg (28 Sep 2022) |
| 1782 | - altsvc: reject bad port numbers |
| 1783 | |
| 1784 | The existing code tried but did not properly reject alternative services |
| 1785 | using negative or too large port numbers. |
| 1786 | |
| 1787 | With this fix, the logic now also flushes the old entries immediately |
| 1788 | before adding a new one, making a following header with an illegal entry |
| 1789 | not flush the already stored entry. |
| 1790 | |
| 1791 | Report from the ongoing source code audit by Trail of Bits. |
| 1792 | |
| 1793 | Adjusted test 356 to verify. |
| 1794 | |
| 1795 | Closes #9607 |
| 1796 | |
| 1797 | - functypes: provide the recv and send arg and return types |
| 1798 | |
| 1799 | This header is for providing the argument types for recv() and send() |
| 1800 | when built to not use a dedicated config-[platfor].h file. |
| 1801 | |
| 1802 | Remove the slow brute-force checks from configure and cmake. |
| 1803 | |
| 1804 | This change also removes the use of the types for select, as they were |
| 1805 | not used in code. |
| 1806 | |
| 1807 | Closes #9592 |
| 1808 | |
| 1809 | - urlapi: reject more bad characters from the host name field |
| 1810 | |
| 1811 | Extended test 1560 to verify |
| 1812 | |
| 1813 | Report from the ongoing source code audit by Trail of Bits. |
| 1814 | |
| 1815 | Closes #9608 |
| 1816 | |
| 1817 | - configure: deprecate builds with small curl_off_t |
| 1818 | |
| 1819 | If curl_off_t turns out to be smaller than 8 bytes, |
| 1820 | --with-n64-deprecated needs to be used to allow the build to |
| 1821 | continue. This is to highlight the fact that support for such builds is |
| 1822 | going away next year. |
| 1823 | |
| 1824 | Also mentioned in DEPRECATED.md |
| 1825 | |
| 1826 | Closes #9605 |
| 1827 | |
| 1828 | - [Patrick Monnerat brought this change] |
| 1829 | |
| 1830 | http, vauth: always provide Curl_allow_auth_to_host() functionality |
| 1831 | |
| 1832 | This function is currently located in the lib/http.c module and is |
| 1833 | therefore disabled by the CURL_DISABLE_HTTP conditional token. |
| 1834 | |
| 1835 | As it may be called by TLS backends, disabling HTTP results in an |
| 1836 | undefined reference error at link time. |
| 1837 | |
| 1838 | Move this function to vauth/vauth.c to always provide it and rename it |
| 1839 | as Curl_auth_allowed_to_host() to respect the vauth module naming |
| 1840 | convention. |
| 1841 | |
| 1842 | Closes #9600 |
| 1843 | |
| 1844 | - ngtcp2: fix C89 compliance nit |
| 1845 | |
| 1846 | - openssl: make certinfo available for QUIC |
| 1847 | |
| 1848 | Curl_ossl_certchain() is now an exported function in lib/vtls/openssl.c that |
| 1849 | can also be used from quiche.c and ngtcp2.c to get the cert chain for QUIC |
| 1850 | connections as well. |
| 1851 | |
| 1852 | The *certchain function was moved to the top of the file for this reason. |
| 1853 | |
| 1854 | Reported-by: Eloy Degen |
| 1855 | Fixes #9584 |
| 1856 | Closes #9597 |
| 1857 | |
| 1858 | - RELEASE-NOTES: synced |
| 1859 | |
| 1860 | - DEPRECATE.md: Support for systems without 64 bit data types |
| 1861 | |
| 1862 | Closes #9604 |
| 1863 | |
| 1864 | - [Patrick Monnerat brought this change] |
| 1865 | |
| 1866 | tests: skip mime/form tests when mime is not built-in |
| 1867 | |
| 1868 | Closes #9596 |
| 1869 | |
| 1870 | - url: rename function due to name-clash in Watt-32 |
| 1871 | |
| 1872 | Follow-up to 2481dbe5f4f58 and applies the change the way it was |
| 1873 | intended. |
| 1874 | |
| 1875 | Viktor Szakats (26 Sep 2022) |
| 1876 | - windows: adjust name of two internal public functions |
| 1877 | |
| 1878 | According to `docs/INTERNALS.md`, internal function names spanning source |
| 1879 | files start with uppercase `Curl_`. Bring these two functions in |
| 1880 | alignment with this. |
| 1881 | |
| 1882 | This also stops exporting them from `libcurl.dll` in autotools builds. |
| 1883 | |
| 1884 | Reviewed-by: Daniel Stenberg |
| 1885 | |
| 1886 | Closes #9598 |
| 1887 | |
| 1888 | Daniel Stenberg (26 Sep 2022) |
| 1889 | - [Gisle Vanem brought this change] |
| 1890 | |
| 1891 | url: rename function due to name-clash in Watt-32 |
| 1892 | |
| 1893 | Since the commit 764c958c52edb427f39, there was a new function called |
| 1894 | resolve_ip(). This clashes with an internal function in Watt-32. |
| 1895 | |
| 1896 | Closes #9585 |
| 1897 | |
| 1898 | Jay Satiro (26 Sep 2022) |
| 1899 | - schannel: ban server ALPN change during recv renegotiation |
| 1900 | |
| 1901 | By the time schannel_recv is renegotiating the connection, libcurl has |
| 1902 | already decided on a protocol and it is too late for the server to |
| 1903 | select a protocol via ALPN except for the originally selected protocol. |
| 1904 | |
| 1905 | Ref: https://github.com/curl/curl/issues/9451 |
| 1906 | |
| 1907 | Closes https://github.com/curl/curl/pull/9463 |
| 1908 | |
| 1909 | Daniel Stenberg (26 Sep 2022) |
| 1910 | - url: a zero-length userinfo part in the URL is still a (blank) user |
| 1911 | |
| 1912 | Adjusted test 1560 to verify |
| 1913 | |
| 1914 | Reported-by: Jay Satiro |
| 1915 | |
| 1916 | Fixes #9088 |
| 1917 | Closes #9590 |
| 1918 | |
| 1919 | Viktor Szakats (25 Sep 2022) |
| 1920 | - autotools: allow --enable-symbol-hiding with windows |
| 1921 | |
| 1922 | This local autotools logic was put in place in |
| 1923 | 9e24b9c7afbcb81120af4cf3f6cdee49a06d8224 (in 2012) which disabled it for |
| 1924 | Windows unconditionally. Testing reveals that it actually works with |
| 1925 | tested toolchains (mingw-w64 and CI ones), so let's allow this build |
| 1926 | feature on that platform. Bringing this in sync with CMake, which already |
| 1927 | supported this. |
| 1928 | |
| 1929 | Reviewed-by: Jay Satiro |
| 1930 | |
| 1931 | Closes #9586 |
| 1932 | |
| 1933 | - autotools: reduce brute-force when detecting recv/send arg list |
| 1934 | |
| 1935 | autotools uses brute-force to detect `recv`/`send`/`select` argument |
| 1936 | lists, by interating through _all_ argument type combinations on each |
| 1937 | `./configure` run. This logic exists since |
| 1938 | 01fa02d0b545e1433dced2430561f8c0c72b74a9 (from 2006) and was a bit later |
| 1939 | extended with Windows support. |
| 1940 | |
| 1941 | This results in a worst-case number of compile + link cycles as below: |
| 1942 | - `recv`: 96 |
| 1943 | - `send`: 192 |
| 1944 | - `select`: 60 |
| 1945 | Total: 348 (the number of curl C source files is 195, for comparison) |
| 1946 | |
| 1947 | Notice that e.g. curl-for-win autotools builds require two `./configure` |
| 1948 | invocations, doubling these numbers. |
| 1949 | |
| 1950 | `recv` on Windows was especially unlucky because `SOCKET` (the correct |
| 1951 | choice there) was listed _last_ in one of the outer trial loops. This |
| 1952 | resulted in lengthy waits while autotools was trying all invalid |
| 1953 | combinations first, wasting cycles, disk writes and slowing down |
| 1954 | iteration. |
| 1955 | |
| 1956 | This patch reduces the amount of idle work by reordering the tests in |
| 1957 | a way to succeed first on a well-known platform such as Windows, and |
| 1958 | also on non-Windows by testing for POSIX prototypes first, on the |
| 1959 | assumption that these are the most likely candidates these days. (We do |
| 1960 | not touch `select`, where the order was already optimal for these |
| 1961 | platforms.) |
| 1962 | |
| 1963 | For non-Windows, this means to try a return value of `ssize_t` first, |
| 1964 | then `int`, reordering the buffer argument type to try `void *` first, |
| 1965 | then `byte *`, and prefer the `const` flavor with `send`. If we are |
| 1966 | here, also stop testing for `SOCKET` type in non-Windows builds. |
| 1967 | |
| 1968 | After the patch, detection on Windows is instantaneous. It should also be |
| 1969 | faster on popular platforms such as Linux and BSD-based ones. |
| 1970 | |
| 1971 | If there are known-good variations for other platforms, they can also be |
| 1972 | fast-tracked like above, given a way to check for that platform inside |
| 1973 | the autotools logic. |
| 1974 | |
| 1975 | Reviewed-by: Daniel Stenberg |
| 1976 | |
| 1977 | Closes #9591 |
| 1978 | |
| 1979 | Daniel Stenberg (23 Sep 2022) |
| 1980 | - TODO: Provide the error body from a CONNECT response |
| 1981 | |
| 1982 | Spellchecked-by: Jay Satiro |
| 1983 | |
| 1984 | Closes #9513 |
| 1985 | Closes #9581 |
| 1986 | |
| 1987 | Viktor Szakats (23 Sep 2022) |
| 1988 | - windows: autotools .rc warnings fixup |
| 1989 | |
| 1990 | Move `LT_LANG([Windows Resource])` after `XC_LIBTOOL`, fixing: |
| 1991 | |
| 1992 | - Warnings when running `autoreconf -fi`. |
| 1993 | |
| 1994 | - Warning when compiling .rc files: |
| 1995 | libtool: compile: unable to infer tagged configuration |
| 1996 | libtool: error: specify a tag with '--tag' |
| 1997 | |
| 1998 | Follow up to 6de7322c03d5b4d91576a7d9fc893e03cc9d1057 |
| 1999 | Ref: https://github.com/curl/curl/pull/9521#issuecomment-1256291156 |
| 2000 | |
| 2001 | Suggested-by: Patrick Monnerat |
| 2002 | Closes #9582 |
| 2003 | |
| 2004 | Daniel Stenberg (23 Sep 2022) |
| 2005 | - [Randall S. Becker brought this change] |
| 2006 | |
| 2007 | curl_setup: disable use of FLOSS for 64-bit NonStop builds |
| 2008 | |
| 2009 | Older 32-bit builds currently need FLOSS. This dependency may be removed |
| 2010 | in future OS releases. |
| 2011 | |
| 2012 | Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca> |
| 2013 | |
| 2014 | Closes #9575 |
| 2015 | |
| 2016 | - [Patrick Monnerat brought this change] |
| 2017 | |
| 2018 | tool: remove dead code |
| 2019 | |
| 2020 | Add a debug assertion to verify protocols included/excluded in a set |
| 2021 | are always tokenized. |
| 2022 | |
| 2023 | Follow-up to commit 677266c. |
| 2024 | |
| 2025 | Closes #9576 |
| 2026 | |
| 2027 | - [Patrick Monnerat brought this change] |
| 2028 | |
| 2029 | lib: prepare the incoming of additional protocols |
| 2030 | |
| 2031 | Move the curl_prot_t to its own conditional block. Introduce symbol |
| 2032 | PROTO_TYPE_SMALL to control it. |
| 2033 | |
| 2034 | Fix a cast in a curl_prot_t assignment. |
| 2035 | Remove an outdated comment. |
| 2036 | |
| 2037 | Follow-up to cd5ca80. |
| 2038 | |
| 2039 | Closes #9534 |
| 2040 | |
| 2041 | - msh3: change the static_assert to make the code C89 |
| 2042 | |
| 2043 | - bearssl: make it proper C89 compliant |
| 2044 | |
| 2045 | - curl-compilers.m4: for gcc + want warnings, set gnu89 standard |
| 2046 | |
| 2047 | To better verify that the code is C89 |
| 2048 | |
| 2049 | Closes #9542 |
| 2050 | |
| 2051 | - [Patrick Monnerat brought this change] |
| 2052 | |
| 2053 | lib517: fix C89 constant signedness |
| 2054 | |
| 2055 | In C89, positive integer literals that overflow an int but not an |
| 2056 | unsigned int may be understood as a negative int. |
| 2057 | |
| 2058 | lib517.c:129:3: warning: this decimal constant is unsigned only in ISO C90 |
| 2059 | {"Sun, 06 Nov 2044 08:49:37 GMT", 2362034977 }, |
| 2060 | ^ |
| 2061 | |
| 2062 | Closes #9572 |
| 2063 | |
| 2064 | - mprintf: use snprintf if available |
| 2065 | |
| 2066 | This is the single place in libcurl code where it uses the "native" |
| 2067 | s(n)printf() function. Used for writing floats. The use has been |
| 2068 | reviewed and vetted and uses a HUGE target buffer, but switching to |
| 2069 | snprintf() still makes this safer and removes build-time warnings. |
| 2070 | |
| 2071 | Reported-by: Philip Heiduck |
| 2072 | |
| 2073 | Fixes #9569 |
| 2074 | Closes #9570 |
| 2075 | |
| 2076 | - docs: tag curl options better in man pages |
| 2077 | |
| 2078 | As it makes them links in the HTML versions. |
| 2079 | |
| 2080 | Verified by the extended test 1176 |
| 2081 | |
| 2082 | - symbols-in-versions: CURLOPT_ENCODING is deprecated since 7.21.6 |
| 2083 | |
| 2084 | - manpage-syntax.pl: all libcurl option symbols should be \fI-tagged |
| 2085 | |
| 2086 | ... as that makes them links to their corresponding man page. |
| 2087 | |
| 2088 | This script is used for test 1173. |
| 2089 | |
| 2090 | Closes #9574 |
| 2091 | |
| 2092 | - RELEASE-NOTES: synced |
| 2093 | |
| 2094 | - [Patrick Monnerat brought this change] |
| 2095 | |
| 2096 | tool: remove protocol count limitation |
| 2097 | |
| 2098 | Replace bit mask protocol sets by null-terminated arrays of protocol |
| 2099 | tokens. These are the addresses of the protocol names returned by |
| 2100 | curl_version_info(). |
| 2101 | |
| 2102 | Protocol names are sorted case-insensitively before output to satisfy CI |
| 2103 | tests matches consistency. |
| 2104 | |
| 2105 | The protocol list returned by curl_version_info() is augmented with all |
| 2106 | RTMP protocol variants. |
| 2107 | |
| 2108 | Test 1401 adjusted for new alpha ordered output. |
| 2109 | |
| 2110 | Closes #9546 |
| 2111 | |
| 2112 | - test972: verify the output without using external tool |
| 2113 | |
| 2114 | It seems too restrictive to assume and use an external tool to verify |
| 2115 | the JSON. This now verifies the outut byte per byte. We could consider |
| 2116 | building a local "JSON verifyer" in a future. |
| 2117 | |
| 2118 | Remove 'jsonlint' from the CI job. |
| 2119 | |
| 2120 | Reported-by: Marcel Raad |
| 2121 | Fixes #9563 |
| 2122 | Closes #9564 |
| 2123 | |
| 2124 | - hostip: lazily wait to figure out if IPv6 works until needed |
| 2125 | |
| 2126 | The check may take many milliseconds, so now it is performed once the |
| 2127 | value is first needed. Also, this change makes sure that the value is |
| 2128 | not used if the resolve is set to be IPv4-only. |
| 2129 | |
| 2130 | Closes #9553 |
| 2131 | |
| 2132 | - curl.h: fix mention of wrong error code in comment |
| 2133 | |
| 2134 | The same error and comment were also used and is now corrected in |
| 2135 | CURLOPT_SSH_KEYFUNCTION.3 |
| 2136 | |
| 2137 | - symbol-scan.pl: scan and verify .3 man pages |
| 2138 | |
| 2139 | This script now also finds all .3 man pages in docs/include and |
| 2140 | docs/include/opts, extracts all uses of CURL* symbols and verifies that all |
| 2141 | symbols mentioned in docs are defined in public headers. |
| 2142 | |
| 2143 | A "global symbol" is one of those matching a known prefix and the script makes |
| 2144 | an attempt to check all/most of them. Just using *all* symbols that match |
| 2145 | CURL* proved matching a little too many other references as well and turned |
| 2146 | difficult turning into something useful. |
| 2147 | |
| 2148 | Closes #9544 |
| 2149 | |
| 2150 | - symbols-in-versions: add missing LIBCURL* symbols |
| 2151 | |
| 2152 | - symbol-scan.pl: also check for LIBCURL* symbols |
| 2153 | |
| 2154 | Closes #9544 |
| 2155 | |
| 2156 | - docs/libcurl/symbols-in-versions: add several missing symbols |
| 2157 | |
| 2158 | - test1119: scan all public headers |
| 2159 | |
| 2160 | Previously this test only scanned a subset of the headers, which made us |
| 2161 | accidentally miss symbols that were provided in the others. Now, the script |
| 2162 | iterates over all headers present in include/curl. |
| 2163 | |
| 2164 | Closes #9544 |
| 2165 | |
| 2166 | - [Patrick Monnerat brought this change] |
| 2167 | |
| 2168 | examples/chkspeed: improve portability |
| 2169 | |
| 2170 | The example program chkspeed uses strncasecmp() which is not portable |
| 2171 | across systems. Replace calls to this function by tests on characters. |
| 2172 | |
| 2173 | Closes #9562 |
| 2174 | |
| 2175 | - easy: fix the #include order |
| 2176 | |
| 2177 | The mentioned "last 3 includes" order should be respected. easy_lock.h should |
| 2178 | be included before those three. |
| 2179 | |
| 2180 | Reported-by: Yuriy Chernyshov |
| 2181 | Fixes #9560 |
| 2182 | Closes #9561 |
| 2183 | |
| 2184 | - docs: spellfixes |
| 2185 | |
| 2186 | Pointed by the new CI job |
| 2187 | |
| 2188 | - GHA: spellcheck |
| 2189 | |
| 2190 | This spellchecker checks markdown files. For this reason this job |
| 2191 | converts all man pages in the repository to markdown with pandoc before |
| 2192 | the check runs. |
| 2193 | |
| 2194 | The perl script 'cleanspell' filters out details from the man page in |
| 2195 | the process, to avoid the spellchecker trying to spellcheck things it |
| 2196 | can't. Like curl specific symbols and the SYNOPSIS and EXAMPLE sections |
| 2197 | of libcurl man pages. |
| 2198 | |
| 2199 | The spell checker does not check words in sections that are within pre, |
| 2200 | strong and em tags. |
| 2201 | |
| 2202 | 'spellcheck.words' is a custom word list with additional accepted words. |
| 2203 | |
| 2204 | Closes #9523 |
| 2205 | |
| 2206 | - connect: fix the wrong error message on connect failures |
| 2207 | |
| 2208 | The "Failed to connect to" message after a connection failure would |
| 2209 | include the strerror message based on the presumed previous socket |
| 2210 | error, but in times it seems that error number is not set when reaching |
| 2211 | this code and therefore it would include the wrong error message. |
| 2212 | |
| 2213 | The strerror message is now removed from here and the curl_easy_strerror |
| 2214 | error is used instead. |
| 2215 | |
| 2216 | Reported-by: Edoardo Lolletti |
| 2217 | Fixes #9549 |
| 2218 | Closes #9554 |
| 2219 | |
| 2220 | - httpput-postfields.c: shorten string for C89 compliance |
| 2221 | |
| 2222 | httpput-postfields.c:41:3: error: string length ā522ā is greater than the length ā509ā ISO C90 compilers are required to support [-Woverlength-strings] |
| 2223 | 41 | "this chapter."; |
| 2224 | | ^~~~~~~~~~~~~~~ |
| 2225 | |
| 2226 | Closes #9555 |
| 2227 | |
| 2228 | - ws: fix a C89 compliance nit |
| 2229 | |
| 2230 | Closes #9541 |
| 2231 | |
| 2232 | - [Patrick Monnerat brought this change] |
| 2233 | |
| 2234 | unit test 1655: make it C89-compliant |
| 2235 | |
| 2236 | Initializations performed in unit test 1655 use automatic variables in |
| 2237 | aggregates and thus can only be computed at run-time. Using gcc in C89 |
| 2238 | dialect mode produces warning messages like: |
| 2239 | |
| 2240 | unit1655.c:96:7: warning: initializer element is not computable at load time [-Wpedantic] |
| 2241 | 96 | { toolong, DOH_DNS_NAME_TOO_LONG }, /* expect early failure */ |
| 2242 | | ^~~~~~~ |
| 2243 | |
| 2244 | Fix the problem by converting these automatic pointer variables to |
| 2245 | static arrays. |
| 2246 | |
| 2247 | Closes #9551 |
| 2248 | |
| 2249 | - [Tobias Schaefer brought this change] |
| 2250 | |
| 2251 | curl_strequal.3: fix typo |
| 2252 | |
| 2253 | Closes #9548 |
| 2254 | |
| 2255 | - [Dmitry Karpov brought this change] |
| 2256 | |
| 2257 | resolve: make forced IPv4 resolve only use A queries |
| 2258 | |
| 2259 | This protects IPv4-only transfers from undesired bad IPv6-related side |
| 2260 | effects and make IPv4 transfers in dual-stack libcurl behave the same |
| 2261 | way as in IPv4 single-stack libcurl. |
| 2262 | |
| 2263 | Closes #9540 |
| 2264 | |
| 2265 | - RELEASE-NOTES: synced |
| 2266 | |
| 2267 | - winbuild/MakefileBuild.vc: handle spaces in libssh(2) include paths |
| 2268 | |
| 2269 | Patched-by: Mark Itzcovitz |
| 2270 | Bug: https://curl.se/mail/lib-2022-09/0038.html |
| 2271 | |
| 2272 | Closes #9536 |
| 2273 | |
| 2274 | - TODO: Reduce CA certificate bundle reparsing |
| 2275 | |
| 2276 | By adding some sort of cache. |
| 2277 | |
| 2278 | Reported-by: Michael Drake |
| 2279 | Closes #9379 |
| 2280 | Closes #9538 |
| 2281 | |
| 2282 | Marc Hoersken (19 Sep 2022) |
| 2283 | - CI/GHA: cancel outdated CI runs on new PR changes |
| 2284 | |
| 2285 | Avoid letting outdated CI runs continue if a PR receives |
| 2286 | new changes. Outside a PR we let them continue running |
| 2287 | by tying the concurrency to the commit hash instead. |
| 2288 | |
| 2289 | Also only let one CodeQL or Hacktoberfest job run at a time. |
| 2290 | |
| 2291 | Other CI platforms we use have this build in, but GitHub |
| 2292 | unfortunately neither by default nor with a simple option. |
| 2293 | |
| 2294 | This saves CI resources and therefore a little energy. |
| 2295 | |
| 2296 | Approved-by: Daniel Stenberg |
| 2297 | Approved-by: Max Dymond |
| 2298 | Closes #9533 |
| 2299 | |
| 2300 | Daniel Stenberg (19 Sep 2022) |
| 2301 | - docs: fix proselint complaints |
| 2302 | |
| 2303 | - GHA: run proselint on markdown files |
| 2304 | |
| 2305 | Co-authored-by: Marc Hƶrsken |
| 2306 | |
| 2307 | Closes #9520 |
| 2308 | |
| 2309 | - lib: the number four in a sequence is the "fourth" |
| 2310 | |
| 2311 | Spelling is hard |
| 2312 | |
| 2313 | Closes #9535 |
| 2314 | |
| 2315 | - [John Bampton brought this change] |
| 2316 | |
| 2317 | misc: fix spelling in two source files |
| 2318 | |
| 2319 | Closes #9529 |
| 2320 | |
| 2321 | Viktor Szakats (18 Sep 2022) |
| 2322 | - windows: add .rc support to autotools builds |
| 2323 | |
| 2324 | After this update autotools builds will compile and link `.rc` resources |
| 2325 | to Windows executables. Bringing this feature on par with CMake and |
| 2326 | Makefile.m32 builds. And also making it unnecessary to improvise these |
| 2327 | steps manually, while monkey patching build files, e.g. [0]. |
| 2328 | |
| 2329 | You can customize the resource compiler via the `RC` envvar, and its |
| 2330 | options via `RCFLAGS`. |
| 2331 | |
| 2332 | This harmless warning may appear throughout the build, even though the |
| 2333 | autotools manual documents [1] `RC` as a valid tag, and it fails when |
| 2334 | omitting one: |
| 2335 | `libtool: error: ignoring unknown tag RC` |
| 2336 | |
| 2337 | [0] https://github.com/curl/curl-for-win/blob/535f19060d4b708f72e75dd849409ce50baa1b84/curl-autotools.sh#L376-L382 |
| 2338 | [1] https://www.gnu.org/software/libtool/manual/html_node/Tags.html |
| 2339 | |
| 2340 | Closes #9521 |
| 2341 | |
| 2342 | Marc Hoersken (18 Sep 2022) |
| 2343 | - CI/linkcheck: only run if a Markdown file is changed |
| 2344 | |
| 2345 | This saves CI resources and therefore a little energy. |
| 2346 | |
| 2347 | Reviewed-by: Max Dymond |
| 2348 | Closes #9531 |
| 2349 | |
| 2350 | - README.md: add GHA status badges for Linux and macOS builds |
| 2351 | |
| 2352 | This makes sense now that Linux builds are being consolidated. |
| 2353 | |
| 2354 | Approved-by: Daniel Stenberg |
| 2355 | Closes #9530 |
| 2356 | |
| 2357 | [skip ci] |
| 2358 | |
| 2359 | Daniel Stenberg (17 Sep 2022) |
| 2360 | - misc: null-terminate |
| 2361 | |
| 2362 | Make use of this term consistently. |
| 2363 | |
| 2364 | Closes #9527 |
| 2365 | |
| 2366 | Marc Hoersken (17 Sep 2022) |
| 2367 | - CI/GHA: merge intel CC and more TLS libs into linux workflow |
| 2368 | |
| 2369 | Continue work on merging all Linux workflows into one file. |
| 2370 | |
| 2371 | Reviewed-by: Max Dymond |
| 2372 | Follow up to #9501 |
| 2373 | Closes #9514 |
| 2374 | |
| 2375 | Daniel Stenberg (17 Sep 2022) |
| 2376 | - [Patrick Monnerat brought this change] |
| 2377 | |
| 2378 | lib1597: make it C89-compliant again |
| 2379 | |
| 2380 | Automatic variable addresses cannot be used in an initialisation |
| 2381 | aggregate. |
| 2382 | |
| 2383 | Follow-up to 9d51329 |
| 2384 | |
| 2385 | Reported-by: Daniel Stenberg |
| 2386 | Fixes: #9524 |
| 2387 | Closes #9525 |
| 2388 | |
| 2389 | - tool_libinfo: silence "different 'const' qualifiers" in qsort() |
| 2390 | |
| 2391 | MSVC 15.0.30729.1 warned about it |
| 2392 | |
| 2393 | Follow-up to dd2a024323dcc |
| 2394 | |
| 2395 | Closes #9522 |
| 2396 | |
| 2397 | - [Patrick Monnerat brought this change] |
| 2398 | |
| 2399 | docs: tell about disabled protocols in CURLOPT_*PROTOCOLS_STR. |
| 2400 | |
| 2401 | Disabled protocols are now handled as if they were unknown. |
| 2402 | Also update the possible protocol list. |
| 2403 | |
| 2404 | - [Patrick Monnerat brought this change] |
| 2405 | |
| 2406 | cli tool: do not use disabled protocols |
| 2407 | |
| 2408 | As they are now rejected by the library, take care of not passing |
| 2409 | disabled protocol names to CURLOPT_PROTOCOLS_STR and |
| 2410 | CURLOPT_REDIR_PROTOCOLS_STR. |
| 2411 | |
| 2412 | Rather than using the CURLPROTO_* constants, dynamically assign protocol |
| 2413 | numbers based on the order they are listed by curl_version_info(). |
| 2414 | |
| 2415 | New type proto_set_t implements prototype bit masks: it should therefore |
| 2416 | be large enough to accomodate all library-enabled protocols. If not, |
| 2417 | protocol numbers beyond the bit count of proto_set_t are recognized but |
| 2418 | "inaccessible": when used, a warning is displayed and the value is |
| 2419 | ignored. Should proto_set_t overflows, enabled protocols are reordered to |
| 2420 | force those having a public CURLPROTO_* representation to be accessible. |
| 2421 | |
| 2422 | Code has been added to subordinate RTMP?* protocols to the presence of |
| 2423 | RTMP in the enabled protocol list, being returned by curl_version_info() |
| 2424 | or not. |
| 2425 | |
| 2426 | - [Patrick Monnerat brought this change] |
| 2427 | |
| 2428 | setopt: use the handler table for protocol name to number conversions |
| 2429 | |
| 2430 | This also returns error CURLE_UNSUPPORTED_PROTOCOL rather than |
| 2431 | CURLE_BAD_FUNCTION_ARGUMENT when a listed protocol name is not found. |
| 2432 | |
| 2433 | A new schemelen parameter is added to Curl_builtin_scheme() to support |
| 2434 | this extended use. |
| 2435 | |
| 2436 | Note that disabled protocols are not recognized anymore. |
| 2437 | |
| 2438 | Tests adapted accordingly. |
| 2439 | |
| 2440 | Closes #9472 |
| 2441 | |
| 2442 | - altsvc: use 'h3' for h3 |
| 2443 | |
| 2444 | Since the official and real version has been out for a while now and servers |
| 2445 | are deployed out there using it, there is no point in sticking to h3-29. |
| 2446 | |
| 2447 | Reported-by: ć¦ćć |
| 2448 | Fixes #9515 |
| 2449 | Closes #9516 |
| 2450 | |
| 2451 | Jay Satiro (16 Sep 2022) |
| 2452 | - [chemodax brought this change] |
| 2453 | |
| 2454 | winbuild: Use NMake batch-rules for compilation |
| 2455 | |
| 2456 | - Invoke cl compiler once for each group of .c files. |
| 2457 | |
| 2458 | This is significantly improves compilation time. For example in my |
| 2459 | environment: 40 s --> 20 s. |
| 2460 | |
| 2461 | Prior to this change cl was invoked per .c file. |
| 2462 | |
| 2463 | Closes https://github.com/curl/curl/pull/9512 |
| 2464 | |
| 2465 | Daniel Stenberg (16 Sep 2022) |
| 2466 | - ws: the infof() flags should be %zu |
| 2467 | |
| 2468 | Follow-up to e5e9e0c5e49ae0 |
| 2469 | |
| 2470 | Closes #9518 |
| 2471 | |
| 2472 | - curl: warn for --ssl use, considered insecure |
| 2473 | |
| 2474 | Closes #9519 |
| 2475 | |
| 2476 | - [Sergey Bronnikov brought this change] |
| 2477 | |
| 2478 | curl_escape.3: fix typo |
| 2479 | |
| 2480 | lengthf -> length |
| 2481 | |
| 2482 | Closes #9517 |
| 2483 | |
| 2484 | - mailmap: merge Philip Heiduck's two addresses into one |
| 2485 | |
| 2486 | - test1948: verify PUT + POST reusing the same handle |
| 2487 | |
| 2488 | Reproduced #9507, verifies the fix |
| 2489 | |
| 2490 | - setopt: when POST is set, reset the 'upload' field |
| 2491 | |
| 2492 | Reported-by: RobBotic1 on github |
| 2493 | Fixes #9507 |
| 2494 | Closes #9511 |
| 2495 | |
| 2496 | Marc Hoersken (15 Sep 2022) |
| 2497 | - github: initial CODEOWNERS setup for CI configuration |
| 2498 | |
| 2499 | Reviewed-by: Daniel Stenberg |
| 2500 | Reviewed-by: Marcel Raad |
| 2501 | Reviewed-by: Max Dymond |
| 2502 | |
| 2503 | Closes #9505 |
| 2504 | |
| 2505 | [skip ci] |
| 2506 | |
| 2507 | - [Philip Heiduck brought this change] |
| 2508 | |
| 2509 | CI: optimize some more dependencies install |
| 2510 | |
| 2511 | Signed-off-by: Philip Heiduck <pheiduck@Philips-MBP.lan> |
| 2512 | |
| 2513 | Closes #9500 |
| 2514 | |
| 2515 | - CI/GHA: merge event-based and NSS into new linux workflow |
| 2516 | |
| 2517 | Continue work on merging all Linux workflows into one file. |
| 2518 | |
| 2519 | Follow up to #9501 |
| 2520 | Closes #9506 |
| 2521 | |
| 2522 | Daniel Stenberg (15 Sep 2022) |
| 2523 | - include/curl/websockets.h: add extern "C" for C++ |
| 2524 | |
| 2525 | Reported-by: n0name321 on github |
| 2526 | Fixes #9509 |
| 2527 | Closes #9510 |
| 2528 | |
| 2529 | - lib1560: extended to verify detect/reject of unknown schemes |
| 2530 | |
| 2531 | ... when no guessing is allowed. |
| 2532 | |
| 2533 | - urlapi: detect scheme better when not guessing |
| 2534 | |
| 2535 | When the parser is not allowed to guess scheme, it should consider the |
| 2536 | word ending at the first colon to be the scheme, independently of number |
| 2537 | of slashes. |
| 2538 | |
| 2539 | The parser now checks that the scheme is known before it counts slashes, |
| 2540 | to improve the error messge for URLs with unknown schemes and maybe no |
| 2541 | slashes. |
| 2542 | |
| 2543 | When following redirects, no scheme guessing is allowed and therefore |
| 2544 | this change effectively prevents redirects to unknown schemes such as |
| 2545 | "data". |
| 2546 | |
| 2547 | Fixes #9503 |
| 2548 | |
| 2549 | - strerror: improve two URL API error messages |
| 2550 | |
| 2551 | Marc Hoersken (14 Sep 2022) |
| 2552 | - CI/GHA: merge bearssl and hyper into initial linux workflow |
| 2553 | |
| 2554 | Begin work on merging all Linux workflows into one file. |
| 2555 | |
| 2556 | Closes #9501 |
| 2557 | |
| 2558 | Daniel Stenberg (14 Sep 2022) |
| 2559 | - RELEASE-NOTES: synced |
| 2560 | |
| 2561 | - cmake: define BUILDING_LIBCURL in lib/CMakeLists, not config.h |
| 2562 | |
| 2563 | Since the config file might also get included by the tool code at times. |
| 2564 | This syncs with how other builds do it. |
| 2565 | |
| 2566 | Closes #9498 |
| 2567 | |
| 2568 | - tool_hugehelp: make hugehelp a blank macro when disabled |
| 2569 | |
| 2570 | Closes #9485 |
| 2571 | |
| 2572 | - getparameter: return PARAM_MANUAL_REQUESTED for -M even when disabled |
| 2573 | |
| 2574 | ... to improve the output in this situation. Now it doesn't say "option |
| 2575 | unknown" anymore. |
| 2576 | |
| 2577 | Closes #9485 |
| 2578 | |
| 2579 | - setopt: fix compiler warning |
| 2580 | |
| 2581 | Follow-up to cd5ca80f00d2 |
| 2582 | |
| 2583 | closes #9502 |
| 2584 | |
| 2585 | - [Philip Heiduck brought this change] |
| 2586 | |
| 2587 | CI: skip make, do make install at once for dependencies |
| 2588 | |
| 2589 | Signed-off-by: Philip Heiduck <pheiduck@Philips-MBP.lan> |
| 2590 | |
| 2591 | Closes #9477 |
| 2592 | |
| 2593 | - formdata: typecast the va_arg return value |
| 2594 | |
| 2595 | To avoid "enumerated type mixed with another type" warnings |
| 2596 | |
| 2597 | Follow-up from 0f52dd5fd5aa3592691a |
| 2598 | |
| 2599 | Closes #9499 |
| 2600 | |
| 2601 | - RELEASE-PROCEDURE.md: mention patch releases |
| 2602 | |
| 2603 | - When to make them and how to argue for them |
| 2604 | - Refreshed the release date list |
| 2605 | |
| 2606 | Closes #9495 |
| 2607 | |
| 2608 | - urldata: use a curl_prot_t type for storing protocol bits |
| 2609 | |
| 2610 | This internal-use-only storage type can be bumped to a curl_off_t once |
| 2611 | we need to use bit 32 as the previous 'unsigned int' can no longer hold |
| 2612 | them all then. |
| 2613 | |
| 2614 | The websocket protocols take bit 30 and 31 so they are the last ones |
| 2615 | that fit within 32 bits - but cannot properly be exported through APIs |
| 2616 | since those use *signed* 32 bit types (long) in places. |
| 2617 | |
| 2618 | Closes #9481 |
| 2619 | |
| 2620 | - [zhanghu on xiaomi brought this change] |
| 2621 | |
| 2622 | formdata: fix warning: 'CURLformoption' is promoted to 'int' |
| 2623 | |
| 2624 | curl/lib/formdata.c: In function 'FormAdd': |
| 2625 | curl/lib/formdata.c:249:31: warning: 'CURLformoption' is promoted to 'int' when passed through '...' |
| 2626 | 249 | option = va_arg(params, CURLformoption); |
| 2627 | | ^ |
| 2628 | curl/lib/formdata.c:249:31: note: (so you should pass 'int' not 'CURLformoption' to 'va_arg') |
| 2629 | curl/lib/formdata.c:249:31: note: if this code is reached, the program will abort |
| 2630 | |
| 2631 | Closes #9484 |
| 2632 | |
| 2633 | - CURLOPT_CONNECT_ONLY.3: for ws(s) as well |
| 2634 | |
| 2635 | and correct the version number for when that support comes. Even if it |
| 2636 | is still experimental for WebSocket. |
| 2637 | |
| 2638 | Closes #9487 |
| 2639 | |
| 2640 | - tool_operate: avoid a few #ifdefs for disabled-libcurl builds |
| 2641 | |
| 2642 | By providing empty macros in the header file instead, the code gets |
| 2643 | easier to read and yet is disabled on demand. |
| 2644 | |
| 2645 | Closes #9486 |
| 2646 | |
| 2647 | - [a1346054 on github brought this change] |
| 2648 | |
| 2649 | scripts: use `grep -E` instead of `egrep` |
| 2650 | |
| 2651 | egrep is deprecated |
| 2652 | |
| 2653 | Closes #9491 |
| 2654 | |
| 2655 | - [Hayden Roche brought this change] |
| 2656 | |
| 2657 | wolfSSL: fix session management bug. |
| 2658 | |
| 2659 | Prior to this commit, non-persistent pointers were being used to store |
| 2660 | sessions. When a WOLFSSL object was then freed, that freed the session |
| 2661 | it owned, and thus invalidated the pointer held in curl's cache. This |
| 2662 | commit makes it so we get a persistent (deep copied) session pointer |
| 2663 | that we then add to the cache. Accordingly, wolfssl_session_free, which |
| 2664 | was previously a no-op, now needs to actually call SSL_SESSION_free. |
| 2665 | |
| 2666 | This bug was discovered by a wolfSSL customer. |
| 2667 | |
| 2668 | Closes #9492 |
| 2669 | |
| 2670 | - docs: use "WebSocket" in singular |
| 2671 | |
| 2672 | This is how the RFC calls the protocol. Also rename the file in docs/ to |
| 2673 | WEBSOCKET.md in uppercase to match how we have done it for many other |
| 2674 | protocol docs in similar fashion. |
| 2675 | |
| 2676 | Add the WebSocket docs to the tarball. |
| 2677 | |
| 2678 | Closes #9496 |
| 2679 | |
| 2680 | Marcel Raad (12 Sep 2022) |
| 2681 | - ws: fix build without `USE_WEBSOCKETS` |
| 2682 | |
| 2683 | The curl.h include is required unconditionally. |
| 2684 | |
| 2685 | - ws: add missing curl.h include |
| 2686 | |
| 2687 | A conflict between commits 664249d0952 and e5839f4ee70 broke the build. |
| 2688 | |
| 2689 | Daniel Stenberg (12 Sep 2022) |
| 2690 | - ws: fix an infof() call to use %uz for size_t output |
| 2691 | |
| 2692 | Detected by Coverity, CID 1514665. |
| 2693 | |
| 2694 | Closes #9480 |
| 2695 | |
| 2696 | Marcel Raad (12 Sep 2022) |
| 2697 | - curl_setup: include only system.h instead of curl.h |
| 2698 | |
| 2699 | As done before commit 9506d01ee50. |
| 2700 | |
| 2701 | Ref: https://github.com/curl/curl/pull/9375#discussion_r957010158 |
| 2702 | Closes https://github.com/curl/curl/pull/9453 |
| 2703 | |
| 2704 | - lib: add missing limits.h includes |
| 2705 | |
| 2706 | Closes https://github.com/curl/curl/pull/9453 |
| 2707 | |
| 2708 | - lib and tests: add missing curl.h includes |
| 2709 | |
| 2710 | Closes https://github.com/curl/curl/pull/9453 |
| 2711 | |
| 2712 | - curl_setup: include curl.h after platform setup headers |
| 2713 | |
| 2714 | The platform setup headers might set definitions required for the |
| 2715 | includes in curl.h. |
| 2716 | |
| 2717 | Ref: https://github.com/curl/curl/pull/9375#discussion_r956998269 |
| 2718 | Closes https://github.com/curl/curl/pull/9453 |
| 2719 | |
| 2720 | Daniel Stenberg (12 Sep 2022) |
| 2721 | - [Benjamin Loison brought this change] |
| 2722 | |
| 2723 | docs: correct missing uppercase in Markdown files |
| 2724 | |
| 2725 | To detect these typos I used: |
| 2726 | |
| 2727 | ``` |
| 2728 | clear && grep -rn '\. [a-z]' . | uniq | grep -v '\. lib' | grep -v '[0-9]\. [a-z]' | grep -v '\.\. [a-z]' | grep -v '\. curl' | grep -v 'e.g. [a-z]' | grep -v 'eg. [a-z]' | grep -v '\etc. [a-z]' | grep -v 'i.e\. [a-z]' | grep --color=always '\. [a-z]' | grep '\.md' |
| 2729 | ``` |
| 2730 | |
| 2731 | Closes #9474 |
| 2732 | |
| 2733 | - tool_setopt: use better English in --libcurl source comments |
| 2734 | |
| 2735 | Like this: |
| 2736 | |
| 2737 | XYZ was set to an object pointer |
| 2738 | ABC was set to a function pointer |
| 2739 | |
| 2740 | Closes #9475 |
| 2741 | |
| 2742 | - setopt: make protocol2num use a curl_off_t for the protocol bit |
| 2743 | |
| 2744 | ... since WSS does not fit within 32 bit. |
| 2745 | |
| 2746 | Bug: https://github.com/curl/curl/pull/9467#issuecomment-1243014887 |
| 2747 | Closes #9476 |
| 2748 | |
| 2749 | - RELEASE-NOTES: synced |
| 2750 | |
| 2751 | - configure: polish the grep -E message a bit further |
| 2752 | |
| 2753 | Suggested-by: Emanuele Torre |
| 2754 | Closes #9473 |
| 2755 | |
| 2756 | - GHA: add a gcc-11 -O3 build using OpenSSL |
| 2757 | |
| 2758 | Since -O3 might trigger other warnings |
| 2759 | |
| 2760 | Closes #9454 |
| 2761 | |
| 2762 | - [Patrick Monnerat brought this change] |
| 2763 | |
| 2764 | content_encoding: use writer struct subclasses for different encodings |
| 2765 | |
| 2766 | The variable-sized encoding-specific storage of a struct contenc_writer |
| 2767 | currently relies on void * alignment that may be insufficient with |
| 2768 | regards to the specific storage fields, although having not caused any |
| 2769 | problems yet. |
| 2770 | |
| 2771 | In addition, gcc 11.3 issues a warning on access to fields of partially |
| 2772 | allocated structures that can occur when the specific storage size is 0: |
| 2773 | |
| 2774 | content_encoding.c: In function āCurl_build_unencoding_stackā: |
| 2775 | content_encoding.c:980:21: warning: array subscript āstruct contenc_writer[0]ā is partly outside array bounds of āunsigned char[16]ā [-Warray-bounds] |
| 2776 | 980 | writer->handler = handler; |
| 2777 | | ~~~~~~~~~~~~~~~~^~~~~~~~~ |
| 2778 | In file included from content_encoding.c:49: |
| 2779 | memdebug.h:115:29: note: referencing an object of size 16 allocated by ācurl_dbg_callocā |
| 2780 | 115 | #define calloc(nbelem,size) curl_dbg_calloc(nbelem, size, __LINE__, __FILE__) |
| 2781 | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 2782 | content_encoding.c:977:60: note: in expansion of macro ācallocā |
| 2783 | 977 | struct contenc_writer *writer = (struct contenc_writer *)calloc(1, sz); |
| 2784 | |
| 2785 | To solve both these problems, the current commit replaces the |
| 2786 | contenc_writer/params structure pairs by "subclasses" of struct |
| 2787 | contenc_writer. These are structures that contain a contenc_writer at |
| 2788 | offset 0. Proper field alignment is therefore handled by the compiler and |
| 2789 | full structure allocation is performed, silencing the warnings. |
| 2790 | |
| 2791 | Closes #9455 |
| 2792 | |
| 2793 | - configure: correct the wording when checking grep -E |
| 2794 | |
| 2795 | The check first checks that grep -E works, and only as a fallback tries |
| 2796 | to find and use egrep. egrep is deprecated. |
| 2797 | |
| 2798 | This change only corrects the output wording, not the checks themselves. |
| 2799 | |
| 2800 | Closes #9471 |
| 2801 | |
| 2802 | Viktor Szakats (10 Sep 2022) |
| 2803 | - websockets: sync prototypes in docs with implementation [ci skip] |
| 2804 | |
| 2805 | Docs for the new send/recv functions synced with the committed versions |
| 2806 | of these. |
| 2807 | |
| 2808 | Closes #9470 |
| 2809 | |
| 2810 | Daniel Stenberg (10 Sep 2022) |
| 2811 | - setopt: make protocols2num() work with websockets |
| 2812 | |
| 2813 | So that CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR can |
| 2814 | specify those as well. |
| 2815 | |
| 2816 | Reported-by: Patrick Monnerat |
| 2817 | Bug: https://curl.se/mail/lib-2022-09/0016.html |
| 2818 | Closes #9467 |
| 2819 | |
| 2820 | - curl/websockets.h: remove leftover bad typedef |
| 2821 | |
| 2822 | Just a leftover trace of a development thing that did not stay like |
| 2823 | that. |
| 2824 | |
| 2825 | Reported-by: Marc Hƶrsken |
| 2826 | Fixes #9465 |
| 2827 | Cloes #9466 |
| 2828 | |
| 2829 | Marcel Raad (10 Sep 2022) |
| 2830 | - [Orgad Shaneh brought this change] |
| 2831 | |
| 2832 | fix Cygwin/MSYS compilation |
| 2833 | |
| 2834 | _getpid is Windows API. On Cygwin variants it should remain getpid. |
| 2835 | |
| 2836 | Fixes #8220 |
| 2837 | Closes #9255 |
| 2838 | |
| 2839 | Marc Hoersken (10 Sep 2022) |
| 2840 | - GHA: prepare workflow merge by aligning structure again |
| 2841 | |
| 2842 | Closes #9413 |
| 2843 | |
| 2844 | Daniel Stenberg (9 Sep 2022) |
| 2845 | - docs: the websockets symbols are added in 7.86.0 |
| 2846 | |
| 2847 | Nothing else |
| 2848 | |
| 2849 | Closes #9459 |
| 2850 | |
| 2851 | - tests/libtest/Makefile.inc: fixup merge conflict mistake |
| 2852 | |
| 2853 | - EXPERIMENTAL.md: add WebSockets |
| 2854 | |
| 2855 | - appveyor: enable websockets |
| 2856 | |
| 2857 | - cirrus: enable websockets in the windows builds |
| 2858 | |
| 2859 | - GHA: add websockets to macos, openssl3 and hyper builds |
| 2860 | |
| 2861 | - tests: add websockets tests |
| 2862 | |
| 2863 | - add websockets support to sws |
| 2864 | - 2300: first very basic websockets test |
| 2865 | - 2301: first libcurl test for ws (not working yet) |
| 2866 | - 2302: use the ws callback |
| 2867 | - 2303: test refused upgrade |
| 2868 | |
| 2869 | - curl_ws_meta: initial implementation |
| 2870 | |
| 2871 | - curl_ws_meta.3: added docs |
| 2872 | |
| 2873 | - ws: initial websockets support |
| 2874 | |
| 2875 | Closes #8995 |
| 2876 | |
| 2877 | - version: add ws + wss |
| 2878 | |
| 2879 | - libtest/lib1560: test basic websocket URL parsing |
| 2880 | |
| 2881 | - configure: add --enable-websockets |
| 2882 | |
| 2883 | - docs/WebSockets.md: docs |
| 2884 | |
| 2885 | - test415: verify Content-Length parser with control code + negative value |
| 2886 | |
| 2887 | - strtoofft: after space, there cannot be a control code |
| 2888 | |
| 2889 | With the change from ISSPACE() to ISBLANK() this function no longer |
| 2890 | deals with (ignores) control codes the same way, which could lead to |
| 2891 | this function returning unexpected values like in the case of |
| 2892 | "Content-Length: \r-12354". |
| 2893 | |
| 2894 | Follow-up to 6f9fb7ec2d7cb389a0da5 |
| 2895 | |
| 2896 | Detected by OSS-fuzz |
| 2897 | Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51140 |
| 2898 | Assisted-by: Max Dymond |
| 2899 | Closes #9458 |
| 2900 | |
| 2901 | - headers: reset the requests counter at transfer start |
| 2902 | |
| 2903 | If not, reusing an easy handle to do a subsequent transfer would |
| 2904 | continue the counter from the previous invoke, which then would make use |
| 2905 | of the header API difficult/impossible as the request counter |
| 2906 | mismatched. |
| 2907 | |
| 2908 | Add libtest 1947 to verify. |
| 2909 | |
| 2910 | Reported-by: Andrew Lambert |
| 2911 | Fixes #9424 |
| 2912 | Closes #9447 |
| 2913 | |
| 2914 | Jay Satiro (8 Sep 2022) |
| 2915 | - header: define public API functions as extern c |
| 2916 | |
| 2917 | Prior to this change linker errors would occur if curl_easy_header or |
| 2918 | curl_easy_nextheader was called from a C++ unit. |
| 2919 | |
| 2920 | Bug: https://github.com/curl/curl/issues/9424#issuecomment-1238818007 |
| 2921 | Reported-by: Andrew Lambert |
| 2922 | |
| 2923 | Closes https://github.com/curl/curl/pull/9446 |
| 2924 | |
| 2925 | Daniel Stenberg (8 Sep 2022) |
| 2926 | - http2: make nghttp2 less picky about field whitespace |
| 2927 | |
| 2928 | In nghttp2 1.49.0 it returns error on leading and trailing whitespace in |
| 2929 | header fields according to language in the recently shipped RFC 9113. |
| 2930 | |
| 2931 | nghttp2 1.50.0 introduces an option to switch off this strict check and |
| 2932 | this change enables this option by default which should make curl behave |
| 2933 | more similar to how it did with nghttp2 1.48.0 and earlier. |
| 2934 | |
| 2935 | We might want to consider making this an option in the future. |
| 2936 | |
| 2937 | Closes #9448 |
| 2938 | |
| 2939 | - RELEASE-NOTES: synced |
| 2940 | |
| 2941 | And bump to 7.86.0 for the pending next release |
| 2942 | |
| 2943 | - [Michael Heimpold brought this change] |
| 2944 | |
| 2945 | ftp: ignore a 550 response to MDTM |
| 2946 | |
| 2947 | The 550 is overused as a return code for multiple error case, e.g. |
| 2948 | file not found and/or insufficient permissions to access the file. |
| 2949 | |
| 2950 | So we cannot fail hard in this case. |
| 2951 | |
| 2952 | Adjust test 511 since we now fail later. |
| 2953 | Add new test 3027 which check that when MDTM failed, but the file could |
| 2954 | actually be retrieved, that in this case no filetime is provided. |
| 2955 | |
| 2956 | Reported-by: Michael Heimpold |
| 2957 | Fixes #9357 |
| 2958 | Closes #9387 |
| 2959 | |
| 2960 | - urlapi: leaner with fewer allocs |
| 2961 | |
| 2962 | Slightly faster with more robust code. Uses fewer and smaller mallocs. |
| 2963 | |
| 2964 | - remove two fields from the URL handle struct |
| 2965 | - reduce copies and allocs |
| 2966 | - use dynbuf buffers more instead of custom malloc + copies |
| 2967 | - uses dynbuf to build the host name in reduces serial alloc+free within |
| 2968 | the same function. |
| 2969 | - move dedotdotify into urlapi.c and make it static, not strdup the input |
| 2970 | and optimize it by checking for . and / before using strncmp |
| 2971 | - remove a few strlen() calls |
| 2972 | - add Curl_dyn_setlen() that can "trim" an existing dynbuf |
| 2973 | |
| 2974 | Closes #9408 |
| 2975 | |
| 2976 | Jay Satiro (7 Sep 2022) |
| 2977 | - setup-win32: no longer define UNICODE/_UNICODE implicitly |
| 2978 | |
| 2979 | - If UNICODE or _UNICODE is defined but the other isn't then error |
| 2980 | instead of implicitly defining it. |
| 2981 | |
| 2982 | As Marcel pointed out it is too late at this point to make such a define |
| 2983 | because Windows headers may already be included, so likely it never |
| 2984 | worked. We never noticed because build systems that can make Windows |
| 2985 | Unicode builds always define both. If one is defined but not the other |
| 2986 | then something went wrong during the build configuration. |
| 2987 | |
| 2988 | Bug: https://github.com/curl/curl/pull/9375#discussion_r956545272 |
| 2989 | Reported-by: Marcel Raad |
| 2990 | |
| 2991 | Closes https://github.com/curl/curl/pull/9384 |
| 2992 | |
| 2993 | Dan Fandrich (6 Sep 2022) |
| 2994 | - tests: fix tag syntax errors in test files |
| 2995 | |
| 2996 | Marc Hoersken (6 Sep 2022) |
| 2997 | - lib: add required Win32 setup definitions in setup-win32.h |
| 2998 | |
| 2999 | Assisted-by: Jay Satiro |
| 3000 | Reviewed-by: Marcel Raad |
| 3001 | |
| 3002 | Follow up to #9312 |
| 3003 | Closes #9375 |
| 3004 | |
| 3005 | Daniel Stenberg (6 Sep 2022) |
| 3006 | - pingpong: extend the response reading error with errno |
| 3007 | |
| 3008 | To help diagnosing the cause of the problem. |
| 3009 | |
| 3010 | See #9380 |
| 3011 | Closes #9443 |
| 3012 | |
| 3013 | - curl-compilers.m4: use -O2 as default optimize for clang |
| 3014 | |
| 3015 | Not -Os |
| 3016 | |
| 3017 | Closes #9444 |
| 3018 | |
| 3019 | - tool_operate: fix msnprintfing the error message |
| 3020 | |
| 3021 | Follow-up to 7be53774c41c59b47075fba |
| 3022 | |
| 3023 | Coverity CID 1513717 pointed out that we cannot use sizeof() on the |
| 3024 | error buffer anymore. |
| 3025 | |
| 3026 | Closes #9440 |
| 3027 | |
| 3028 | - [Emanuele Torre brought this change] |
| 3029 | |
| 3030 | curl_ctype: add space around <= operator in ISSPACE macro |
| 3031 | |
| 3032 | Follow-up to f65f750 |
| 3033 | |
| 3034 | Closes #9441 |
| 3035 | |
| 3036 | - CURLOPT_PROXY_SSLCERT_BLOB.3: this is for HTTPS proxies |
| 3037 | |
| 3038 | The 'protocols' listed were previously wrong. |
| 3039 | |
| 3040 | Reported-by: ProceduralMan on github |
| 3041 | Fixes #9434 |
| 3042 | Closes #9435 |
| 3043 | |
| 3044 | - curl_ctype: convert to macros-only |
| 3045 | |
| 3046 | This no longer provide functions, only macros. Runs faster and produces |
| 3047 | smaller output. |
| 3048 | |
| 3049 | The biggest precaution this change brings: |
| 3050 | |
| 3051 | DO NOT use post/pre-increments when passing arguments to the macros. |
| 3052 | |
| 3053 | Closes #9429 |
| 3054 | |
| 3055 | - misc: ISSPACE() => ISBLANK() |
| 3056 | |
| 3057 | Instances of ISSPACE() use that should rather use ISBLANK(). I think |
| 3058 | somewhat carelessly used because it sounds as if it checks for space or |
| 3059 | whitespace, but also includes %0a to %0d. |
| 3060 | |
| 3061 | For parsing purposes, we should only accept what we must and not be |
| 3062 | overly liberal. It leads to surprises and surprises lead to bad things. |
| 3063 | |
| 3064 | Closes #9432 |
| 3065 | |
| 3066 | - ctype: remove all use of <ctype.h>, use our own versions |
| 3067 | |
| 3068 | Except in the test servers. |
| 3069 | |
| 3070 | Closes #9433 |
| 3071 | |
| 3072 | Marc Hoersken (5 Sep 2022) |
| 3073 | - cmake: skip superfluous hex2dec conversion using math expr |
| 3074 | |
| 3075 | CMake seems to be able to compare two hex values just fine. |
| 3076 | Also make sure CURL_TARGET_WINDOWS_VERSION is respected. |
| 3077 | |
| 3078 | Assisted-by: Marcel Raad |
| 3079 | Reviewed-by: Viktor Szakats |
| 3080 | Reported-by: Keitagit-kun on github |
| 3081 | |
| 3082 | Follow up to #9312 |
| 3083 | Fixes #9406 |
| 3084 | Closes #9411 |
| 3085 | |
| 3086 | Daniel Stenberg (5 Sep 2022) |
| 3087 | - curl_easy_pause.3: unpausing is as fast as possible |
| 3088 | |
| 3089 | Reported-by: ssdbest on github |
| 3090 | Fixes #9410 |
| 3091 | Closes #9430 |
| 3092 | |
| 3093 | - CURLOPT_DNS_INTERFACE.3: mention it works for almost all protocols |
| 3094 | |
| 3095 | Except file. |
| 3096 | |
| 3097 | Reported-by: ProceduralMan on github |
| 3098 | Fixes #9427 |
| 3099 | Closes #9428 |
| 3100 | |
| 3101 | - NPN: remove support for and use of |
| 3102 | |
| 3103 | Next Protocol Negotiation is a TLS extension that was created and used |
| 3104 | for agreeing to use the SPDY protocol (the precursor to HTTP/2) for |
| 3105 | HTTPS. In the early days of HTTP/2, before the spec was finalized and |
| 3106 | shipped, the protocol could be enabled using this extension with some |
| 3107 | servers. |
| 3108 | |
| 3109 | curl supports the NPN extension with some TLS backends since then, with |
| 3110 | a command line option `--npn` and in libcurl with |
| 3111 | `CURLOPT_SSL_ENABLE_NPN`. |
| 3112 | |
| 3113 | HTTP/2 proper is made to use the ALPN (Application-Layer Protocol |
| 3114 | Negotiation) extension and the NPN extension has no purposes |
| 3115 | anymore. The HTTP/2 spec was published in May 2015. |
| 3116 | |
| 3117 | Today, use of NPN in the wild should be extremely rare and most likely |
| 3118 | totally extinct. Chrome removed NPN support in Chrome 51, shipped in |
| 3119 | June 2016. Removed in Firefox 53, April 2017. |
| 3120 | |
| 3121 | Closes #9307 |
| 3122 | |
| 3123 | - RELEASE-NOTES: synced |
| 3124 | |
| 3125 | and bump the tentative next release version to 7.85.1 |
| 3126 | |
| 3127 | - [Samuel Henrique brought this change] |
| 3128 | |
| 3129 | configure: fail if '--without-ssl' + explicit parameter for an ssl lib |
| 3130 | |
| 3131 | A side effect of a previous change to configure (576e507c78bdd2ec88) |
| 3132 | exposed a non-critical issue that can happen if configure is called with |
| 3133 | both '--without-ssl' and some parameter setting the use of a ssl library |
| 3134 | (e.g. --with-gnutls). The configure script would end up assuming this is |
| 3135 | a MultiSSL build, due to the way the case statement is written. |
| 3136 | |
| 3137 | I have changed the order of the variables in the string concatenation |
| 3138 | for the case statement and also tweaked the options so that |
| 3139 | --without-ssl never turns the build into a MultiSSL one and also clearly |
| 3140 | stating that there are conflicting parameters if the user sets it like |
| 3141 | described above. |
| 3142 | |
| 3143 | Closes #9414 |
| 3144 | |
| 3145 | - tests/certs/scripts: insert standard curl source headers |
| 3146 | |
| 3147 | ... including the SPDX-License-Identifier. |
| 3148 | |
| 3149 | These omissions were not detected by the RUEUSE CI job nor the copyright.pl |
| 3150 | scanners because we have a general wildcard in .reuse/dep5 for |
| 3151 | "tests/certs/*". |
| 3152 | |
| 3153 | Reported-by: Samuel Henrique |
| 3154 | Fixes #9417 |
| 3155 | Closes #9420 |
| 3156 | |
| 3157 | - [Samuel Henrique brought this change] |
| 3158 | |
| 3159 | docs: remove mentions of deprecated '--without-openssl' config parameter |
| 3160 | |
| 3161 | Closes #9415 |
| 3162 | |
| 3163 | - [Samuel Henrique brought this change] |
| 3164 | |
| 3165 | manpages: Fix spelling of "allows to" -> "allows one to" |
| 3166 | |
| 3167 | References: |
| 3168 | https://salsa.debian.org/lintian/lintian/-/blob/master/tags/t/typo-in-manual-page.tag |
| 3169 | https://english.stackexchange.com/questions/60271/grammatical-complements-for-allow/60285#60285 |
| 3170 | |
| 3171 | Closes #9419 |
| 3172 | |
| 3173 | - [Samuel Henrique brought this change] |
| 3174 | |
| 3175 | CURLOPT_WILDCARDMATCH.3: Fix backslash escaping under single quotes |
| 3176 | |
| 3177 | Lintian (on Debian) has been complaining about this for a while but |
| 3178 | I didn't bother initially as the groff parser that we use is not |
| 3179 | affected by this. |
| 3180 | |
| 3181 | But I have now noticed that the online manpage is affected by it: |
| 3182 | https://curl.se/libcurl/c/CURLOPT_WILDCARDMATCH.html |
| 3183 | |
| 3184 | (I'm using double quotes for quoting-only down below) |
| 3185 | |
| 3186 | The section that should be parsed as "'\'" ends up being parsed as |
| 3187 | "'Ā“". |
| 3188 | |
| 3189 | This is due to roffit not parsing "'\\'" correctly, which is fine |
| 3190 | as the "correct" way of writing "'\'" is "'\e'" instead. |
| 3191 | |
| 3192 | Note that this fix is not enough to fix the online manpage at |
| 3193 | curl's website, as roffit seems to parse it wrongly either way. |
| 3194 | |
| 3195 | My intent is to at least fix the manpage so that roffit can |
| 3196 | be changed to parse "'\e'" correctly (although I suggest making |
| 3197 | roffit parse both ways correctly, since that's what groff does). |
| 3198 | |
| 3199 | More details at: |
| 3200 | https://bugs.debian.org/966803 |
| 3201 | https://salsa.debian.org/lintian/lintian/-/blob/930b18e4b28b7540253f458ef42a884cca7965c3/tags/a/acute-accent-in-manual-page.tag |
| 3202 | |
| 3203 | Closes #9418 |
| 3204 | |
| 3205 | - tool_operate: reduce errorbuffer allocs |
| 3206 | |
| 3207 | - parallel transfers: only alloc and keep errorbuffers in memory for |
| 3208 | actual "live" transfers and not for the ones in the pending queue |
| 3209 | |
| 3210 | - serial transfers: reuse the same fixed buffer for all transfers, not |
| 3211 | allocated at all. |
| 3212 | |
| 3213 | Closes #9394 |
| 3214 | |
| 3215 | Viktor Szakats (31 Aug 2022) |
| 3216 | - misc: spelling fixes |
| 3217 | |
| 3218 | Found using codespell 2.2.1. |
| 3219 | |
| 3220 | Also delete the redundant protocol designator from an archive.org URL. |
| 3221 | |
| 3222 | Reviewed-by: Daniel Stenberg |
| 3223 | Closes #9403 |
| 3224 | |
| 3225 | Daniel Stenberg (31 Aug 2022) |
| 3226 | - tool_progress: remove 'Qd' from the parallel progress bar |
| 3227 | |
| 3228 | The "queued" value is no longer showing anything useful to the user. It |
| 3229 | is an internal number of transfers waiting at that moment. |
| 3230 | |
| 3231 | Closes #9389 |
| 3232 | |
| 3233 | - tool_operate: prevent over-queuing in parallel mode |
| 3234 | |
| 3235 | When doing a huge amount of parallel transfers, we must not add them to |
| 3236 | the per_transfer list frivolously since they all use memory after all. |
| 3237 | This was previous done without really considering millions or billions |
| 3238 | of transfers. Massive parallelism would use a lot of memory for no good |
| 3239 | purpose. |
| 3240 | |
| 3241 | The queue is now limited to twice the paralleism number. |
| 3242 | |
| 3243 | This makes the 'Qd' value in the parallel progress meter mostly useless |
| 3244 | for users, but works for now for us as a debug display. |
| 3245 | |
| 3246 | Reported-by: justchen1369 on github |
| 3247 | Fixes #8933 |
| 3248 | Closes #9389 |
| 3249 | |
| 3250 | Viktor Szakats (31 Aug 2022) |
| 3251 | - cmake: fix original MinGW builds |
| 3252 | |
| 3253 | 1. Re-enable `HAVE_GETADDRINFO` detection on Windows |
| 3254 | |
| 3255 | Commit d08ee3c83d6bd416aef62ff844c98e47c4682429 (in 2013) added logic |
| 3256 | that automatically assumed `getaddrinfo()` to be present for builds |
| 3257 | with IPv6 enabled. As it turns out, certain toolchains (e.g. original |
| 3258 | MinGW) by default target older Windows versions, and thus do not |
| 3259 | support `getaddrinfo()` out of the box. The issue was masked for |
| 3260 | a while by CMake builds forcing a newer Windows version, but that |
| 3261 | logic got deleted in commit 8ba22ffb2030ed91312fc8634e29516cdf0a9761. |
| 3262 | Since then, some CI builds started failing due to IPv6 enabled, |
| 3263 | `HAVE_GETADDRINFO` set, but `getaddrinfo()` in fact missing. |
| 3264 | |
| 3265 | It also turns out that IPv6 works without `getaddrinfo()` since commit |
| 3266 | 67a08dca27a6a07b36c7f97252e284ca957ff1a5 (from 2019, via #4662). So, |
| 3267 | to resolve all this, we can now revert the initial commit, thus |
| 3268 | restoring `getaddrinfo()` detection and support IPv6 regardless of its |
| 3269 | outcome. |
| 3270 | |
| 3271 | Reported-by: Daniel Stenberg |
| 3272 | |
| 3273 | 2. Omit `bcrypt` with original MinGW |
| 3274 | |
| 3275 | Original (aka legacy/old) MinGW versions do not support `bcrypt` |
| 3276 | (introduced with Vista). We already have logic to handle that in |
| 3277 | `lib/rand.c` and autotools builds, where we do not call the |
| 3278 | unsupported API and do not link `bcrypt`, respectively, when using |
| 3279 | original MinGW. |
| 3280 | |
| 3281 | This patch ports that logic to CMake, fixing the link error: |
| 3282 | `c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lbcrypt` |
| 3283 | |
| 3284 | Ref: https://ci.appveyor.com/project/curlorg/curl/builds/44624888/job/40vle84cn4vle7s0#L508 |
| 3285 | Regression since 76172511e7adcf720f4c77bd91f49278300ec97e |
| 3286 | |
| 3287 | Fixes #9214 |
| 3288 | Fixes #9393 |
| 3289 | Fixes #9395 |
| 3290 | Closes #9396 |
| 3291 | |
| 3292 | Version 7.85.0 (31 Aug 2022) |
| 3293 | |
| 3294 | Daniel Stenberg (31 Aug 2022) |
| 3295 | - RELEASE-NOTES: synced |
| 3296 | |
| 3297 | curl 7.85.0 release |
| 3298 | |
| 3299 | - THANKS: add contributors from the 7.85.0 release |
| 3300 | |
| 3301 | - getparam: correctly clean args |
| 3302 | |
| 3303 | Follow-up to bf7e887b2442783ab52 |
| 3304 | |
| 3305 | The previous fix for #9128 was incomplete and caused #9397. |
| 3306 | |
| 3307 | Fixes #9397 |
| 3308 | Closes #9399 |
| 3309 | |
| 3310 | - zuul: remove the clang-tidy job |
| 3311 | |
| 3312 | Turns out we don't see the warnings, but the warnings right now are |
| 3313 | plain ridiculous and unhelpful so we can just as well just kill this |
| 3314 | job. |
| 3315 | |
| 3316 | Closes #9390 |
| 3317 | |
| 3318 | - cmake: set feature PSL if present |
| 3319 | |
| 3320 | ... make test 1014 pass when libpsl is used. |
| 3321 | |
| 3322 | Closes #9391 |
| 3323 | |
| 3324 | - lib530: simplify realloc failure exit path |
| 3325 | |
| 3326 | To make code analyzers happier |
| 3327 | |
| 3328 | Closes #9392 |
| 3329 | |
| 3330 | - [Orgad Shaneh brought this change] |
| 3331 | |
| 3332 | tests: add tests for netrc login/password combinations |
| 3333 | |
| 3334 | Covers the following PRs: |
| 3335 | |
| 3336 | - #9066 |
| 3337 | - #9247 |
| 3338 | - #9248 |
| 3339 | |
| 3340 | Closes #9256 |
| 3341 | |
| 3342 | - [Orgad Shaneh brought this change] |
| 3343 | |
| 3344 | url: really use the user provided in the url when netrc entry exists |
| 3345 | |
| 3346 | If the user is specified as part of the URL, and the same user exists |
| 3347 | in .netrc, Authorization header was not sent at all. |
| 3348 | |
| 3349 | The user and password fields were assigned in conn->user and password |
| 3350 | but the user was not assigned to data->state.aptr, which is the field |
| 3351 | that is used in output_auth_headers and friends. |
| 3352 | |
| 3353 | Fix by assigning the user also to aptr. |
| 3354 | |
| 3355 | Amends commit d1237ac906ae7e3cd7a22c3a2d3a135a97edfbf5. |
| 3356 | |
| 3357 | Fixes #9243 |
| 3358 | |
| 3359 | - [Orgad Shaneh brought this change] |
| 3360 | |
| 3361 | netrc: Use the password from lines without login |
| 3362 | |
| 3363 | If netrc entry has password with empty login, use it for any username. |
| 3364 | |
| 3365 | Example: |
| 3366 | .netrc: |
| 3367 | machine example.com password 123456 |
| 3368 | |
| 3369 | curl -vn http://user@example.com/ |
| 3370 | |
| 3371 | Fix it by initializing state_our_login to TRUE, and reset it only when |
| 3372 | finding an entry with the same host and different login. |
| 3373 | |
| 3374 | Closes #9248 |
| 3375 | |
| 3376 | - [Jay Satiro brought this change] |
| 3377 | |
| 3378 | url: treat missing usernames in netrc as empty |
| 3379 | |
| 3380 | - If, after parsing netrc, there is a password with no username then |
| 3381 | set a blank username. |
| 3382 | |
| 3383 | This used to be the case prior to 7d600ad (precedes 7.82). Note |
| 3384 | parseurlandfillconn already does the same thing for URLs. |
| 3385 | |
| 3386 | Reported-by: Raivis <standsed@users.noreply.github.com> |
| 3387 | Testing-by: Domen Kožar |
| 3388 | |
| 3389 | Fixes https://github.com/curl/curl/issues/8653 |
| 3390 | Closes #9334 |
| 3391 | Closes #9066 |
| 3392 | |
| 3393 | - test8: verify that "ctrl-byte cookies" are ignored |
| 3394 | |
| 3395 | - cookie: reject cookies with "control bytes" |
| 3396 | |
| 3397 | Rejects 0x01 - 0x1f (except 0x09) plus 0x7f |
| 3398 | |
| 3399 | Reported-by: Axel Chong |
| 3400 | |
| 3401 | Bug: https://curl.se/docs/CVE-2022-35252.html |
| 3402 | |
| 3403 | CVE-2022-35252 |
| 3404 | |
| 3405 | Closes #9381 |
| 3406 | |
| 3407 | - libssh: ignore deprecation warnings |
| 3408 | |
| 3409 | libssh 0.10.0 marks all SCP functions as "deprecated" which causes |
| 3410 | compiler warnings and errors in our CI jobs and elsewhere. Ignore |
| 3411 | deprecation warnings if 0.10.0 or later is found in the build. |
| 3412 | |
| 3413 | If they actually remove the functions at a later point, then someone can |
| 3414 | deal with that pain and functionality break then. |
| 3415 | |
| 3416 | Fixes #9382 |
| 3417 | Closes #9383 |
| 3418 | |
| 3419 | - Revert "schannel: when importing PFX, disable key persistence" |
| 3420 | |
| 3421 | This reverts commit 70d010d285315e5f1cad6bdb4953e167b069b692. |
| 3422 | |
| 3423 | Due to further reports in #9300 that indicate this commit might |
| 3424 | introduce problems. |
| 3425 | |
| 3426 | - multi: use larger dns hash table for multi interface |
| 3427 | |
| 3428 | Have curl_multi_init() use a much larger DNS hash table than used for |
| 3429 | the easy interface to scale and perform better when used with _many_ |
| 3430 | host names. |
| 3431 | |
| 3432 | curl_share_init() sets an in-between size. |
| 3433 | |
| 3434 | Inspired-by: Ivan Tsybulin |
| 3435 | See #9340 |
| 3436 | Closes #9376 |
| 3437 | |
| 3438 | Marc Hoersken (28 Aug 2022) |
| 3439 | - CI/runtests.pl: add param for dedicated curl to talk to APIs |
| 3440 | |
| 3441 | This should make it possible to also report test failures |
| 3442 | if our freshly build curl binary is not fully functional. |
| 3443 | |
| 3444 | Reviewed-by: Daniel Stenberg |
| 3445 | Closes #9360 |
| 3446 | |
| 3447 | Daniel Stenberg (27 Aug 2022) |
| 3448 | - [Jacob Tolar brought this change] |
| 3449 | |
| 3450 | openssl: add cert path in error message |
| 3451 | |
| 3452 | Closes #9349 |
| 3453 | |
| 3454 | - [Jacob Tolar brought this change] |
| 3455 | |
| 3456 | cert.d: clarify that escape character works for file paths |
| 3457 | |
| 3458 | Closes #9349 |
| 3459 | |
| 3460 | - gha: move over ngtcp2-gnutls CI job from zuul |
| 3461 | |
| 3462 | Closes #9331 |
| 3463 | |
| 3464 | Marc Hoersken (26 Aug 2022) |
| 3465 | - cmake: add detection of threadsafe feature |
| 3466 | |
| 3467 | Avoids failing test 1014 by replicating configure checks |
| 3468 | for HAVE_ATOMIC and _WIN32_WINNT with custom CMake tests. |
| 3469 | |
| 3470 | Reviewed-by: Marcel Raad |
| 3471 | |
| 3472 | Follow up to #8680 |
| 3473 | Closes #9312 |
| 3474 | |
| 3475 | Daniel Stenberg (26 Aug 2022) |
| 3476 | - RELEASE-NOTES: synced |
| 3477 | |
| 3478 | Marc Hoersken (26 Aug 2022) |
| 3479 | - CI/azure: align torture shallowness with GHA |
| 3480 | |
| 3481 | There 25 is used with FTP tests skipped, and 20 for FTP tests. |
| 3482 | This should make torture tests stay within the 60min timeout. |
| 3483 | |
| 3484 | Reviewed-by: Daniel Stenberg |
| 3485 | Closes #9371 |
| 3486 | |
| 3487 | - multi_wait: fix and improve Curl_poll error handling on Windows |
| 3488 | |
| 3489 | First check for errors and return CURLM_UNRECOVERABLE_POLL |
| 3490 | before moving forward and waiting on socket readiness events. |
| 3491 | |
| 3492 | Reviewed-by: Jay Satiro |
| 3493 | Reviewed-by: Marcel Raad |
| 3494 | |
| 3495 | Reported-by: Daniel Stenberg |
| 3496 | Ref: #9361 |
| 3497 | |
| 3498 | Follow up to #8961 |
| 3499 | Closes #9372 |
| 3500 | |
| 3501 | - multi_wait: fix skipping to populate revents for extra_fds |
| 3502 | |
| 3503 | On Windows revents was not populated for extra_fds if |
| 3504 | multi_wait had to wait due to the Curl_poll pre-check |
| 3505 | not signalling any readiness. This commit fixes that. |
| 3506 | |
| 3507 | Reviewed-by: Marcel Raad |
| 3508 | Reviewed-by: Jay Satiro |
| 3509 | |
| 3510 | Closes #9361 |
| 3511 | |
| 3512 | - CI/appveyor: disable TLS in msys2-native autotools builds |
| 3513 | |
| 3514 | Schannel cannot be used from msys2-native Linux-emulated builds. |
| 3515 | |
| 3516 | Reviewed-by: Marcel Raad |
| 3517 | Reviewed-by: Daniel Stenberg |
| 3518 | |
| 3519 | Follow up to #9367 |
| 3520 | Closes #9370 |
| 3521 | |
| 3522 | Jay Satiro (25 Aug 2022) |
| 3523 | - tests: fix http2 tests to use CRLF headers |
| 3524 | |
| 3525 | Prior to this change some tests that rely on nghttpx proxy did not use |
| 3526 | CRLF headers everywhere. A recent change in nghttp2, which updated its |
| 3527 | version of llhttp (HTTP parser), requires curl's HTTP/1.1 test server to |
| 3528 | use CRLF headers. |
| 3529 | |
| 3530 | Ref: https://github.com/nghttp2/nghttp2/commit/9d389e8 |
| 3531 | |
| 3532 | Fixes https://github.com/curl/curl/issues/9364 |
| 3533 | Closes https://github.com/curl/curl/pull/9365 |
| 3534 | |
| 3535 | Daniel Stenberg (25 Aug 2022) |
| 3536 | - [rcombs brought this change] |
| 3537 | |
| 3538 | multi: use a pipe instead of a socketpair on apple platforms |
| 3539 | |
| 3540 | Sockets may be shut down by the kernel when the app is moved to the |
| 3541 | background, but pipes are not. |
| 3542 | |
| 3543 | Removed from KNOWN_BUGS |
| 3544 | |
| 3545 | Fixes #6132 |
| 3546 | Closes #9368 |
| 3547 | |
| 3548 | - [Somnath Kundu brought this change] |
| 3549 | |
| 3550 | libssh2: provide symlink name in SFTP dir listing |
| 3551 | |
| 3552 | When reading the symbolic link name for a file, we need to add the file |
| 3553 | name to base path name. |
| 3554 | |
| 3555 | Closes #9369 |
| 3556 | |
| 3557 | - configure: if asked to use TLS, fail if no TLS lib was detected |
| 3558 | |
| 3559 | Previously the configure script would just warn about this fact and |
| 3560 | continue with TLS disabled build which is not always helpful. TLS should |
| 3561 | be explicitly disabled if that is what the user wants. |
| 3562 | |
| 3563 | Closes #9367 |
| 3564 | |
| 3565 | - [Dustin Howett brought this change] |
| 3566 | |
| 3567 | schannel: when importing PFX, disable key persistence |
| 3568 | |
| 3569 | By default, the PFXImportCertStore API persists the key in the user's |
| 3570 | key store (as though the certificate was being imported for permanent, |
| 3571 | ongoing use.) |
| 3572 | |
| 3573 | The documentation specifies that keys that are not to be persisted |
| 3574 | should be imported with the flag `PKCS12_NO_PERSIST_KEY`. |
| 3575 | NOTE: this flag is only supported on versions of Windows newer than XP |
| 3576 | and Server 2003. |
| 3577 | |
| 3578 | Fixes #9300 |
| 3579 | Closes #9363 |
| 3580 | |
| 3581 | - unit1303: four tests should have TRUE for 'connecting' |
| 3582 | |
| 3583 | To match the comments. |
| 3584 | |
| 3585 | Reported-by: Wu Zheng |
| 3586 | |
| 3587 | See #9355 |
| 3588 | Closes #9356 |
| 3589 | |
| 3590 | - CURLOPT_BUFFERSIZE.3: add upload buffersize to see also |
| 3591 | |
| 3592 | Closes #9354 |
| 3593 | |
| 3594 | - [Fabian Fischer brought this change] |
| 3595 | |
| 3596 | HTTP3.md: add missing autoreconf command for building with wolfssl |
| 3597 | |
| 3598 | Closes #9353 |
| 3599 | |
| 3600 | - RELEASE-NOTES: synced |
| 3601 | |
| 3602 | - multi: have curl_multi_remove_handle close CONNECT_ONLY transfer |
| 3603 | |
| 3604 | įŗhen it has been used in the multi interface, it is otherwise left in |
| 3605 | the connection cache, can't be reused and nothing will close them since |
| 3606 | the easy handle loses the association with the multi handle and thus the |
| 3607 | connection cache - until the multi handle is closed or it gets pruned |
| 3608 | because the cache is full. |
| 3609 | |
| 3610 | Reported-by: Dominik Thalhammer |
| 3611 | Fixes #9335 |
| 3612 | Closes #9342 |
| 3613 | |
| 3614 | - docs/cmdline-opts: remove \& escapes from all .d files |
| 3615 | |
| 3616 | gen.pl escapes them itself now |
| 3617 | |
| 3618 | - docs/cmdline-opts/gen.pl: encode leading single and double quotes |
| 3619 | |
| 3620 | As "(aq" and "(dq" to prevent them from implying a meaning in the nroff |
| 3621 | output. This removes the need for using \& escapes in the .d files' |
| 3622 | description parts. |
| 3623 | |
| 3624 | Closes #9352 |
| 3625 | |
| 3626 | Marc Hoersken (23 Aug 2022) |
| 3627 | - tests/server/sockfilt.c: avoid race condition without a mutex |
| 3628 | |
| 3629 | Avoid loosing any triggered handles by first aborting and joining |
| 3630 | the waiting threads before evaluating the individual signal state. |
| 3631 | |
| 3632 | This removes the race condition and therefore need for a mutex. |
| 3633 | |
| 3634 | Closes #9023 |
| 3635 | |
| 3636 | Daniel Stenberg (22 Aug 2022) |
| 3637 | - [Emil Engler brought this change] |
| 3638 | |
| 3639 | url: output the maximum when rejecting a url |
| 3640 | |
| 3641 | This commit changes the failf message to output the maximum length, when |
| 3642 | curl refuses to process a URL because it is too long. |
| 3643 | |
| 3644 | See: #9317 |
| 3645 | Closes: #9327 |
| 3646 | |
| 3647 | - [Chris Paulson-Ellis brought this change] |
| 3648 | |
| 3649 | configure: fix broken m4 syntax in TLS options |
| 3650 | |
| 3651 | Commit b589696f added lines to some shell within AC_ARG_WITH macros, but |
| 3652 | inadvertently failed to move the final closing ). |
| 3653 | |
| 3654 | Quote the script section using braces. |
| 3655 | |
| 3656 | So, if these problems have been around for a while, how did I find them? |
| 3657 | Only because I did a configure including these options: |
| 3658 | |
| 3659 | $ ./configure --with-openssl --without-rustls |
| 3660 | SSL: enabled (OpenSSL) |
| 3661 | |
| 3662 | Closes #9344 |
| 3663 | |
| 3664 | - tests/data/CMakeLists: remove making the 'show' makefile target |
| 3665 | |
| 3666 | It is not used by runtests since 3c0f462 |
| 3667 | |
| 3668 | Closes #9333 |
| 3669 | |
| 3670 | - tests/data/Makefile: remove 'filecheck' target |
| 3671 | |
| 3672 | No practical use anymore since 3c0f4622cdfd6 |
| 3673 | |
| 3674 | Closes #9332 |
| 3675 | |
| 3676 | - libssh2: make atime/mtime date overflow return error |
| 3677 | |
| 3678 | Closes #9328 |
| 3679 | |
| 3680 | - libssh: make atime/mtime date overflow return error |
| 3681 | |
| 3682 | Closes #9328 |
| 3683 | |
| 3684 | - examples/curlx.c: remove |
| 3685 | |
| 3686 | This example is a bit convoluted to use as an example, combined with the |
| 3687 | special license for it makes it unsuitable. |
| 3688 | |
| 3689 | Closes #9330 |
| 3690 | |
| 3691 | - [Tobias Nygren brought this change] |
| 3692 | |
| 3693 | curl.h: include <sys/select.h> on SunOS |
| 3694 | |
| 3695 | It is needed for fd_set to be visible to downstream consumers that use |
| 3696 | <curl/multi.h>. Header is known to exist at least as far back as Solaris |
| 3697 | 2.6. |
| 3698 | |
| 3699 | Closes #9329 |
| 3700 | |
| 3701 | - DEPRECATE.md: push the NSS deprecation date forward one year to 2023 |
| 3702 | |
| 3703 | URL: https://curl.se/mail/lib-2022-08/0016.html |
| 3704 | |
| 3705 | - libssh2: setting atime or mtime >32bit on 4-bytes-long systems |
| 3706 | |
| 3707 | Since the libssh2 API uses 'long' to store the timestamp, it cannot |
| 3708 | transfer >32bit times on Windows and 32bit architecture builds. |
| 3709 | |
| 3710 | Avoid nasty surprises by instead not setting such time. |
| 3711 | |
| 3712 | Spotted by Coverity |
| 3713 | |
| 3714 | Closes #9325 |
| 3715 | |
| 3716 | - libssh: setting atime or mtime > 32bit is now just skipped |
| 3717 | |
| 3718 | The libssh API used caps the time to an unsigned 32bit variable. Avoid |
| 3719 | nasty surprises by instead not setting such time. |
| 3720 | |
| 3721 | Spotted by Coverity. |
| 3722 | |
| 3723 | Closes #9324 |
| 3724 | |
| 3725 | Jay Satiro (16 Aug 2022) |
| 3726 | - KNOWN_BUGS: Windows Unicode builds use homedir in current locale |
| 3727 | |
| 3728 | Bug: https://github.com/curl/curl/pull/7252 |
| 3729 | Reported-by: dEajL3kA@users.noreply.github.com |
| 3730 | |
| 3731 | Ref: https://github.com/curl/curl/pull/7281 |
| 3732 | |
| 3733 | Closes https://github.com/curl/curl/pull/9305 |
| 3734 | |
| 3735 | Daniel Stenberg (16 Aug 2022) |
| 3736 | - test399: switch it to use a config file instead |
| 3737 | |
| 3738 | ... as using a 65535 bytes host name in a URL does not fit on the |
| 3739 | command line on some systems - like Windows. |
| 3740 | |
| 3741 | Reported-by: Marcel Raad |
| 3742 | Fixes #9321 |
| 3743 | Closes #9322 |
| 3744 | |
| 3745 | - RELEASE-NOTES: synced |
| 3746 | |
| 3747 | - asyn-ares: make a single alloc out of hostname + async data |
| 3748 | |
| 3749 | This saves one alloc per name resolve and simplifies the exit path. |
| 3750 | |
| 3751 | Closes #9310 |
| 3752 | |
| 3753 | - Curl_close: call Curl_resolver_cancel to avoid memory-leak |
| 3754 | |
| 3755 | There might be a pending (c-ares) resolve that isn't free'd up yet. |
| 3756 | |
| 3757 | Closes #9310 |
| 3758 | |
| 3759 | - asyn-thread: fix socket leak on OOM |
| 3760 | |
| 3761 | Closes #9310 |
| 3762 | |
| 3763 | - GHA: mv CI torture test from Zuul |
| 3764 | |
| 3765 | Closes #9310 |
| 3766 | |
| 3767 | - ngtcp2-wolfssl.yml: add GHA to build ngtcp2 + wolfSSL |
| 3768 | |
| 3769 | Closes #9318 |
| 3770 | |
| 3771 | - test399: verify check of too long host name |
| 3772 | |
| 3773 | - url: reject URLs with hostnames longer than 65535 bytes |
| 3774 | |
| 3775 | It *probably* causes other problems too since DNS can't resolve such |
| 3776 | long names, but the SNI field in TLS is limited to 16 bits length. |
| 3777 | |
| 3778 | Closes #9317 |
| 3779 | |
| 3780 | - curl_multi_perform.3: minor language fix |
| 3781 | |
| 3782 | Closes #9316 |
| 3783 | |
| 3784 | - ngtcp2: fix picky compiler warnings with wolfSSL for QUIC |
| 3785 | |
| 3786 | Follow-up to 8a13be227eede2 |
| 3787 | |
| 3788 | Closes #9315 |
| 3789 | |
| 3790 | - ngtcp2: remove leftover variable |
| 3791 | |
| 3792 | Mistake leftover from my edit before push. |
| 3793 | |
| 3794 | Follow-up from 8a13be227eede2601c2b3b |
| 3795 | Reported-by: Viktor Szakats |
| 3796 | Bug: https://github.com/curl/curl/pull/9290#issuecomment-1214569167 |
| 3797 | |
| 3798 | Viktor Szakats (15 Aug 2022) |
| 3799 | - Makefile.m32: allow -nghttp3/-ngtcp2 without -ssl [ci skip] |
| 3800 | |
| 3801 | Before this patch `-nghttp3`/`-ngtcp2` had an effect only when `-ssl` |
| 3802 | was also enabled. `-ssl` meaning OpenSSL (and its forks). After |
| 3803 | 8a13be227eede2601c2b3b1c63e08b3dc9b35dd5 nghttp3/ngtcp2 can also be |
| 3804 | used together with wolfSSL. This patch adds the ability to enable |
| 3805 | `-nghttp3`/`-ngtcp2` independently from `-ssl` (OpenSSL), allowing to |
| 3806 | use it with wolfSSL or other, future TLS backends. |
| 3807 | |
| 3808 | Before this patch, it was fine to enable `-nghttp3`/`-ngtcp2` |
| 3809 | unconditionally. After this patch, this is no longer the case, and now |
| 3810 | it's the user's responsibility to enable `-nghttp3`/`-ngtcp2` only |
| 3811 | together with a compatible TLS backend. |
| 3812 | |
| 3813 | When using a TLS backend other than OpenSSL, the TLS-specific ngtcp2 |
| 3814 | library must be configured manually, e.g.: |
| 3815 | `export CURL_LDFLAG_EXTRAS=-lngtcp2_crypto_wolfssl` |
| 3816 | |
| 3817 | (or via `NGTCP2_LIBS`) |
| 3818 | |
| 3819 | Closes #9314 |
| 3820 | |
| 3821 | Daniel Stenberg (15 Aug 2022) |
| 3822 | - [Stefan Eissing brought this change] |
| 3823 | |
| 3824 | quic: add support via wolfSSL |
| 3825 | |
| 3826 | - based on ngtcp2 PR https://github.com/ngtcp2/ngtcp2/pull/505 |
| 3827 | - configure adapted to build against ngtcp2 wolfssl crypto lib |
| 3828 | - quic code added for creation of WOLFSSL* instances |
| 3829 | |
| 3830 | Closes #9290 |
| 3831 | |
| 3832 | Marcel Raad (14 Aug 2022) |
| 3833 | - [David Carlier brought this change] |
| 3834 | |
| 3835 | memdebug: add annotation attributes |
| 3836 | |
| 3837 | memory debug tracking annotates whether the returned pointer does not |
| 3838 | `alias`, hints where the size required is, for Windows to be better |
| 3839 | debugged via Visual Studio. |
| 3840 | |
| 3841 | Closes https://github.com/curl/curl/pull/9306 |
| 3842 | |
| 3843 | Daniel Stenberg (14 Aug 2022) |
| 3844 | - GHA: move libressl CI from zuul to GitHub |
| 3845 | |
| 3846 | Closes #9309 |
| 3847 | |
| 3848 | - KNOWN_BUGS: FTPS directory listing hangs on Windows with Schannel |
| 3849 | |
| 3850 | Closes #9161 |
| 3851 | |
| 3852 | - KNOWN_BUGS: CURLOPT_CERTINFO results in CURLE_OUT_OF_MEMORY with Schannel |
| 3853 | |
| 3854 | Closes #8741 |
| 3855 | |
| 3856 | - KNOWN_BUGS: libssh blocking and infinite loop problem |
| 3857 | |
| 3858 | Closes #8632 |
| 3859 | |
| 3860 | - RELEASE-NOTES: synced |
| 3861 | |
| 3862 | - msh3: fix the QUIC disconnect function |
| 3863 | |
| 3864 | And free request related memory better in 'done'. Fixes a memory-leak. |
| 3865 | |
| 3866 | Reported-by: Gisle Vanem |
| 3867 | Fixes #8915 |
| 3868 | Closes #9304 |
| 3869 | |
| 3870 | - connect: close the happy eyeballs loser connection when using QUIC |
| 3871 | |
| 3872 | Reviewed-by: Nick Banks |
| 3873 | |
| 3874 | Closes #9303 |
| 3875 | |
| 3876 | - [Emil Engler brought this change] |
| 3877 | |
| 3878 | refactor: split resolve_server() into functions |
| 3879 | |
| 3880 | This commit splits the branch-heavy resolve_server() function into |
| 3881 | various sub-functions, in order to reduce the amount of nested |
| 3882 | if/else-statements. |
| 3883 | |
| 3884 | Beside this, it also removes many else-sequences, by returning in the |
| 3885 | previous if-statement. |
| 3886 | |
| 3887 | Closes #9283 |
| 3888 | |
| 3889 | - schannel: re-indent to use curl style better |
| 3890 | |
| 3891 | Only white space changes |
| 3892 | |
| 3893 | Closes #9301 |
| 3894 | |
| 3895 | - [Emanuele Torre brought this change] |
| 3896 | |
| 3897 | docs/cmdline-opts: fix example and categories for --form-escape |
| 3898 | |
| 3899 | The example was missing a "--form" argument |
| 3900 | I also replaced "--form" with "-F" to shorten the line a bit since it |
| 3901 | was already very long. |
| 3902 | |
| 3903 | And I also moved --form-escape from the "post" category to the "upload" |
| 3904 | category (this is what I originally wanted to fix, before also noticing |
| 3905 | the mistake in the example). |
| 3906 | |
| 3907 | Closes #9298 |
| 3908 | |
| 3909 | - [Nick Banks brought this change] |
| 3910 | |
| 3911 | HTTP3.md: update to msh3 v0.4.0 |
| 3912 | |
| 3913 | Closes #9297 |
| 3914 | |
| 3915 | - hostip: resolve *.localhost to 127.0.0.1/::1 |
| 3916 | |
| 3917 | Following the footsteps of other clients like Firefox/Chrome. RFC 6761 |
| 3918 | says clients SHOULD do this. |
| 3919 | |
| 3920 | Add test 389 to verify. |
| 3921 | |
| 3922 | Reported-by: TheKnarf on github |
| 3923 | Fixes #9192 |
| 3924 | Closes #9296 |
| 3925 | |
| 3926 | Jay Satiro (11 Aug 2022) |
| 3927 | - KNOWN_BUGS: long paths are not fully supported on Windows |
| 3928 | |
| 3929 | Bug: https://github.com/curl/curl/issues/8361 |
| 3930 | Reported-by: Gisle Vanem |
| 3931 | |
| 3932 | Closes https://github.com/curl/curl/pull/9288 |
| 3933 | |
| 3934 | Daniel Stenberg (11 Aug 2022) |
| 3935 | - config: remove the check for and use of SIZEOF_SHORT |
| 3936 | |
| 3937 | shorts are 2 bytes on all platforms curl runs and have ever run on. |
| 3938 | |
| 3939 | Closes #9291 |
| 3940 | |
| 3941 | - configure: introduce CURL_SIZEOF |
| 3942 | |
| 3943 | This is a rewrite of the previously used GPLv3+exception licensed |
| 3944 | file. With this change, there is no more reference to GPL so we can |
| 3945 | remove that from LICENSES/. |
| 3946 | |
| 3947 | Ref: #9220 |
| 3948 | Closes #9291 |
| 3949 | |
| 3950 | - [Sean McArthur brought this change] |
| 3951 | |
| 3952 | hyper: customize test1274 to how hyper unfolds headers |
| 3953 | |
| 3954 | Closes #9217 |
| 3955 | |
| 3956 | - [Orgad Shaneh brought this change] |
| 3957 | |
| 3958 | curl-config: quote directories with potential space |
| 3959 | |
| 3960 | On Windows (at least with CMake), the default prefix is |
| 3961 | C:/Program Files (x86)/CURL. |
| 3962 | |
| 3963 | Closes #9253 |
| 3964 | |
| 3965 | - [Oliver Roberts brought this change] |
| 3966 | |
| 3967 | amigaos: fix threaded resolver on AmigaOS 4.x |
| 3968 | |
| 3969 | Replace ip4 resolution function on AmigaOS 4.x, as it requires runtime |
| 3970 | feature detection and extra code to make it thread safe. |
| 3971 | |
| 3972 | Closes #9265 |
| 3973 | |
| 3974 | - [Emil Engler brought this change] |
| 3975 | |
| 3976 | imap: use ISALNUM() for alphanumeric checks |
| 3977 | |
| 3978 | This commit replaces a self-made character check for alphanumeric |
| 3979 | characters within imap_is_bchar() with the ISALNUM() macro, as it is |
| 3980 | reduces the size of the code and makes the performance better, due to |
| 3981 | ASCII arithmetic. |
| 3982 | |
| 3983 | Closes #9289 |
| 3984 | |
| 3985 | - RELEASE-NOTES: synced |
| 3986 | |
| 3987 | - [Cering on github brought this change] |
| 3988 | |
| 3989 | connect: add quic connection information |
| 3990 | |
| 3991 | Fixes #9286 |
| 3992 | Closes #9287 |
| 3993 | |
| 3994 | - [Philip Heiduck brought this change] |
| 3995 | |
| 3996 | cirrus/freebsd-ci: bootstrap the pip installer |
| 3997 | |
| 3998 | Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> |
| 3999 | |
| 4000 | Closes #9213 |
| 4001 | |
| 4002 | - urldata: move smaller fields down in connectdata struct |
| 4003 | |
| 4004 | By (almost) sorting the struct fields in connectdata in a decending size |
| 4005 | order, having the single char ones last, we reduce the number of holes |
| 4006 | in the struct and thus the amount of storage needed. |
| 4007 | |
| 4008 | Closes #9280 |
| 4009 | |
| 4010 | - ldap: adapt to conn->port now being an 'int' |
| 4011 | |
| 4012 | Remove typecasts. Fix printf() formats. |
| 4013 | |
| 4014 | Follow-up from 764c6bd3bf. |
| 4015 | Pointed out by Coverity CID 1507858. |
| 4016 | |
| 4017 | Closes #9281 |
| 4018 | |
| 4019 | - KNOWN_BUGS: Negotiate authentication against Hadoop HDFS |
| 4020 | |
| 4021 | Closes #8264 |
| 4022 | |
| 4023 | - [Oliver Roberts brought this change] |
| 4024 | |
| 4025 | file: add handling of native AmigaOS paths |
| 4026 | |
| 4027 | On AmigaOS 4.x, handle native absolute paths, whilst blocking relative |
| 4028 | paths. Also allow unix style paths if feature enabled at link time. |
| 4029 | |
| 4030 | Inspiration-from: Michael Trebilcock |
| 4031 | |
| 4032 | Closes #9259 |
| 4033 | |
| 4034 | - KNOWN_BUGS: cmake build is not thread-safe |
| 4035 | |
| 4036 | The cmake build does not check for and verify presence of a working |
| 4037 | Atomic type, which then makes curl_global_init() to not build |
| 4038 | thread-safe on non-Windows platforms. |
| 4039 | |
| 4040 | Closes https://github.com/curl/curl/issues/8973 |
| 4041 | Closes https://github.com/curl/curl/pull/8982 |
| 4042 | |
| 4043 | - [Oliver Roberts brought this change] |
| 4044 | |
| 4045 | configure: fixup bsdsocket detection code for AmigaOS 4.x |
| 4046 | |
| 4047 | The code that detects bsdsocket.library for AmigaOS did not work |
| 4048 | for AmigaOS 4.x. This has been fixed and also cleaned up a little |
| 4049 | to reduce duplication. Wasn't technically necessary before, but is |
| 4050 | required when building with AmiSSL instead of OpenSSL. |
| 4051 | |
| 4052 | Closes #9268 |
| 4053 | |
| 4054 | - [Oliver Roberts brought this change] |
| 4055 | |
| 4056 | tool: reintroduce set file comment code for AmigaOS |
| 4057 | |
| 4058 | Amiga specific code which put the URL in the file comment was perhaps |
| 4059 | accidentally removed in b88940850002a3f1c25bc6488b95ad30eb80d696 having |
| 4060 | originally been added in 5c215bdbdfde8b2350cdcbac82aae0c914da5314. |
| 4061 | Reworked to fit the code changes and added it back in. |
| 4062 | |
| 4063 | Reported-by: Michael Trebilcock |
| 4064 | Originally-added-by: Chris Young |
| 4065 | |
| 4066 | Closes #9258 |
| 4067 | |
| 4068 | - urldata: make 'negnpn' use less storage |
| 4069 | |
| 4070 | The connectdata struct field 'negnpn' never holds a value larger than |
| 4071 | 30, so an unsigned char saves 3 bytes struct space. |
| 4072 | |
| 4073 | Closes #9279 |
| 4074 | |
| 4075 | - urldata: make three *_proto struct fields smaller |
| 4076 | |
| 4077 | Use 'unsigned char' for storage instead of the enum, for three GSSAPI |
| 4078 | related fields in the connectdata struct. |
| 4079 | |
| 4080 | Closes #9278 |
| 4081 | |
| 4082 | - connect: set socktype/protocol correctly |
| 4083 | |
| 4084 | So that an address used from the DNS cache that was previously used for |
| 4085 | QUIC can be reused for TCP and vice versa. |
| 4086 | |
| 4087 | To make this possible, set conn->transport to "unix" for unix domain |
| 4088 | connections ... and store the transport struct field in an unsigned char |
| 4089 | to use less space. |
| 4090 | |
| 4091 | Reported-by: ć¦ćć |
| 4092 | Fixes #9274 |
| 4093 | Closes #9276 |
| 4094 | |
| 4095 | - [Oliver Roberts brought this change] |
| 4096 | |
| 4097 | amissl: allow AmiSSL to be used with AmigaOS 4.x builds |
| 4098 | |
| 4099 | Enable AmiSSL to be used instead of static OpenSSL link libraries. |
| 4100 | for AmigaOS 4.x, as it already is in the AmigaOS 3.x build. |
| 4101 | |
| 4102 | Closes #9269 |
| 4103 | |
| 4104 | - [opensignature on github brought this change] |
| 4105 | |
| 4106 | openssl: add details to "unable to set client certificate" error |
| 4107 | |
| 4108 | from: "curl: (58) unable to set client certificate" |
| 4109 | |
| 4110 | to: curl: (58) unable to set client certificate [error:0A00018F:SSL |
| 4111 | routines::ee key too small] |
| 4112 | |
| 4113 | Closes #9228 |
| 4114 | |
| 4115 | - [Oliver Roberts brought this change] |
| 4116 | |
| 4117 | amissl: make AmiSSL v5 a minimum requirement |
| 4118 | |
| 4119 | AmiSSL v5 is the latest version, featuring a port of OpenSSL 3.0. |
| 4120 | Support for previous OpenSSL 1.1.x versions has been dropped, so |
| 4121 | makes sense to enforce v5 as the minimum requirement. This also |
| 4122 | allows all the AmiSSL stub workarounds to be removed as they are |
| 4123 | now provided in a link library in the AmiSSL SDK. |
| 4124 | |
| 4125 | Closes #9267 |
| 4126 | |
| 4127 | - [Oliver Roberts brought this change] |
| 4128 | |
| 4129 | configure: -pthread not available on AmigaOS 4.x |
| 4130 | |
| 4131 | The most recent GCC builds for AmigaOS 4.x do not allow -pthread and |
| 4132 | exit with an error. Instead, need to explictly specify -lpthread. |
| 4133 | |
| 4134 | Closes #9266 |
| 4135 | |
| 4136 | - digest: pass over leading spaces in qop values |
| 4137 | |
| 4138 | When parsing the "qop=" parameter of the digest authentication, and the |
| 4139 | value is provided within quotes, the list of values can have leading |
| 4140 | white space which the parser previously did not handle correctly. |
| 4141 | |
| 4142 | Add test case 388 to verify. |
| 4143 | |
| 4144 | Reported-by: vlubart on github |
| 4145 | Fixes #9264 |
| 4146 | Closes #9270 |
| 4147 | |
| 4148 | - [Evgeny Grin (Karlson2k) brought this change] |
| 4149 | |
| 4150 | digest: reject broken header with session protocol but without qop |
| 4151 | |
| 4152 | Closes #9077 |
| 4153 | |
| 4154 | - CURLINFO_SPEED_UPLOAD/DOWNLOAD.3: fix examples |
| 4155 | |
| 4156 | Reported-by: jvvprasad78 on github |
| 4157 | Assisted-by: Jay Satiro |
| 4158 | Fixes #9239 |
| 4159 | Closes #9241 |
| 4160 | |
| 4161 | - [Fabian Keil brought this change] |
| 4162 | |
| 4163 | test44[2-4]: add '--resolve' to the keywords |
| 4164 | |
| 4165 | ... so the tests can be automatically skipped when |
| 4166 | using an external proxy like Privoxy. |
| 4167 | |
| 4168 | Closes #9250 |
| 4169 | |
| 4170 | - RELEASE-NOTES: synced |
| 4171 | |
| 4172 | - CURLOPT_CONNECT_ONLY.3: clarify multi API use |
| 4173 | |
| 4174 | Reported-by: Maxim Ivanov |
| 4175 | Fixes #9244 |
| 4176 | Closes #9262 |
| 4177 | |
| 4178 | - [Andrew Lambert brought this change] |
| 4179 | |
| 4180 | curl_easy_header: Add CURLH_PSEUDO to sanity check |
| 4181 | |
| 4182 | Fixes #9235 |
| 4183 | Closes #9236 |
| 4184 | |
| 4185 | - [Emil Engler brought this change] |
| 4186 | |
| 4187 | docs: add dns category to --resolve |
| 4188 | |
| 4189 | This commit adds the dns category to the --resolve command line option, |
| 4190 | because it can be interpreted as both: a low-level connection option and |
| 4191 | an option related to the resolving of a hostname. |
| 4192 | |
| 4193 | It is also not common for dns options to belong to the connection |
| 4194 | category and vice versa. --ipv4 and --ipv6 are both good examples. |
| 4195 | |
| 4196 | Closes #9229 |
| 4197 | |
| 4198 | Jay Satiro (2 Aug 2022) |
| 4199 | - [Wyatt O'Day brought this change] |
| 4200 | |
| 4201 | schannel: Add TLS 1.3 support |
| 4202 | |
| 4203 | - Support TLS 1.3 as the default max TLS version for Windows Server 2022 |
| 4204 | and Windows 11. |
| 4205 | |
| 4206 | - Support specifying TLS 1.3 ciphers via existing option |
| 4207 | CURLOPT_TLS13_CIPHERS (tool: --tls13-ciphers). |
| 4208 | |
| 4209 | Closes https://github.com/curl/curl/pull/8419 |
| 4210 | |
| 4211 | Daniel Stenberg (2 Aug 2022) |
| 4212 | - [Emil Engler brought this change] |
| 4213 | |
| 4214 | cmdline-opts/gen.pl: improve performance |
| 4215 | |
| 4216 | On some systems, the gen.pl script takes nearly two minutes for the |
| 4217 | generation of the main-page, which is a completely unacceptable time. |
| 4218 | |
| 4219 | The slow performance has two causes: |
| 4220 | 1. Use of a regex locale operator |
| 4221 | 2. Useless invokations of loops |
| 4222 | |
| 4223 | The commit addresses the first issue by replacing the "\W" wiht |
| 4224 | [^a-zA-Z0-9_], which is, according to regex101.com, functionally |
| 4225 | equivalent to the previous operation, except that it is obviously |
| 4226 | limited to ASCII only, which is fine, as the curl project is |
| 4227 | English-only anyway. |
| 4228 | |
| 4229 | The second issue is being addressed by only running the loop if the line |
| 4230 | contains a "--" in it. The loop may be completeley removed in the |
| 4231 | future. |
| 4232 | |
| 4233 | Co-authored-by: Emanuele Torre <torreemanuele6@gmail.com> |
| 4234 | |
| 4235 | See #8299 |
| 4236 | Fixes #9230 |
| 4237 | Closes #9232 |
| 4238 | |
| 4239 | - docs/cmdline: mark fail and fail-with-body as mutually exclusive |
| 4240 | |
| 4241 | Reported-by: Andreas Sommer |
| 4242 | Fixes #9221 |
| 4243 | Closes #9222 |
| 4244 | |
| 4245 | - [Nao Yonashiro brought this change] |
| 4246 | |
| 4247 | quiche: fix build failure |
| 4248 | |
| 4249 | Reviewed-by: Alessandro Ghedini |
| 4250 | Closes #9223 |
| 4251 | |
| 4252 | Viktor Szakats (2 Aug 2022) |
| 4253 | - configure.ac: drop references to deleted functions |
| 4254 | |
| 4255 | follow-up from 4d73854462f30948acab12984b611e9e33ee41e6 |
| 4256 | |
| 4257 | Reported-by: Oliver Roberts |
| 4258 | Fixes #9238 |
| 4259 | Closes #9240 |
| 4260 | |
| 4261 | Daniel Stenberg (28 Jul 2022) |
| 4262 | - [Sean McArthur brought this change] |
| 4263 | |
| 4264 | hyper: enable obs-folded multiline headers |
| 4265 | |
| 4266 | Closes #9216 |
| 4267 | |
| 4268 | - connect: revert the use of IP*_RECVERR |
| 4269 | |
| 4270 | The options were added in #6341 and d13179d, but cause problems: Lots of |
| 4271 | POLLIN event occurs but recvfrom read nothing. |
| 4272 | |
| 4273 | Reported-by: Tatsuhiro Tsujikawa |
| 4274 | Fixes #9209 |
| 4275 | Closes #9215 |
| 4276 | |
| 4277 | - [Marco Kamner brought this change] |
| 4278 | |
| 4279 | docs: remove him/her/he/she from documentation |
| 4280 | |
| 4281 | Closes #9208 |
| 4282 | |
| 4283 | - RELEASE-NOTES: synced |
| 4284 | |
| 4285 | - tool_getparam: make --doh-url "" switch it off |
| 4286 | |
| 4287 | A possible future addition could be to parse the URL first too to verify |
| 4288 | that it is valid before trying to use it. |
| 4289 | |
| 4290 | Assisted-by: Jay Satiro |
| 4291 | Closes #9207 |
| 4292 | |
| 4293 | - mailmap: add rzrymiak on github |
| 4294 | |
| 4295 | Jay Satiro (26 Jul 2022) |
| 4296 | - ngtcp2: Fix build error due to change in nghttp3 prototypes |
| 4297 | |
| 4298 | ngtcp2/nghttp3@4a066b2 changed nghttp3_conn_block_stream and |
| 4299 | nghttp3_conn_shutdown_stream_write return from int to void. |
| 4300 | |
| 4301 | Reported-by: jurisuk@users.noreply.github.com |
| 4302 | |
| 4303 | Fixes https://github.com/curl/curl/issues/9204 |
| 4304 | Closes https://github.com/curl/curl/pull/9200 |
| 4305 | |
| 4306 | Daniel Stenberg (26 Jul 2022) |
| 4307 | - [rzrymiak on github brought this change] |
| 4308 | |
| 4309 | BUGS.md: improve language |
| 4310 | |
| 4311 | Closes #9205 |
| 4312 | |
| 4313 | - [Philip Heiduck brought this change] |
| 4314 | |
| 4315 | cirrus.yml: replace py38-pip with py39-pip |
| 4316 | |
| 4317 | Reported-by: Jay Satiro |
| 4318 | Fixes #9201 |
| 4319 | Closes #9202 |
| 4320 | |
| 4321 | - tool_getparam: fix cleanarg() for unicode builds |
| 4322 | |
| 4323 | Use the correct type, and make cleanarg an empty macro if the cleaning |
| 4324 | ability is absent. |
| 4325 | |
| 4326 | Fixes #9195 |
| 4327 | Closes #9196 |
| 4328 | |
| 4329 | Reviewed-by: Jay Satiro |
| 4330 | Reviewed-by: Marcel Raad |
| 4331 | |
| 4332 | Marc Hoersken (25 Jul 2022) |
| 4333 | - test3026: add support for Windows using native Win32 threads |
| 4334 | |
| 4335 | Reviewed-by: Viktor Szakats |
| 4336 | Reviewed-by: Jay Satiro |
| 4337 | Reviewed-by: Daniel Stenberg |
| 4338 | |
| 4339 | Follow up to 7ade9c50b35d95d47a43880c3097bebab7a7e690 |
| 4340 | Closes #9012 |
| 4341 | |
| 4342 | Jay Satiro (25 Jul 2022) |
| 4343 | - [Evgeny Grin (Karlson2k) brought this change] |
| 4344 | |
| 4345 | digest: fix memory leak, fix not quoted 'opaque' |
| 4346 | |
| 4347 | Fix leak regression introduced by 3a6fe0c. |
| 4348 | |
| 4349 | Closes https://github.com/curl/curl/pull/9199 |
| 4350 | |
| 4351 | Daniel Stenberg (23 Jul 2022) |
| 4352 | - tests: several enumerated type cleanups |
| 4353 | |
| 4354 | To please icc |
| 4355 | |
| 4356 | Closes #9179 |
| 4357 | |
| 4358 | - tool_paramhlp: fix "enumerated type mixed with another type" |
| 4359 | |
| 4360 | Warning by icc |
| 4361 | |
| 4362 | Closes #9179 |
| 4363 | |
| 4364 | - tool_writeout: fix enumerated type mixed with another type |
| 4365 | |
| 4366 | Closes #9179 |
| 4367 | |
| 4368 | - tool_cfgable: make 'synthetic_error' a plain bool |
| 4369 | |
| 4370 | The specific reason was not used. |
| 4371 | |
| 4372 | Closes #9179 |
| 4373 | |
| 4374 | - tool_paramhlp: make check_protocol return ParameterError |
| 4375 | |
| 4376 | "enumerated type mixed with another type" |
| 4377 | |
| 4378 | Closes #9179 |
| 4379 | |
| 4380 | - tool_formparse: fix variable may be used before its value is set |
| 4381 | |
| 4382 | Warning by icc |
| 4383 | |
| 4384 | Closes #9179 |
| 4385 | |
| 4386 | - sendf: skip storing HTTP headers if HTTP disabled |
| 4387 | |
| 4388 | Closes #9179 |
| 4389 | |
| 4390 | - url: enumerated type mixed with another type |
| 4391 | |
| 4392 | Follow-up to 1c58e7ae99ce2030213f28b |
| 4393 | |
| 4394 | Closes #9179 |
| 4395 | |
| 4396 | - urldata: change second proxytype field to unsigned char to match |
| 4397 | |
| 4398 | To avoid "enumerated type mixed with another type" |
| 4399 | |
| 4400 | Closes #9179 |
| 4401 | |
| 4402 | - http: typecast the httpreq assignment to avoid icc compiler warning |
| 4403 | |
| 4404 | error #188: enumerated type mixed with another type |
| 4405 | |
| 4406 | Closes #9179 |
| 4407 | |
| 4408 | - urldata: make state.httpreq an unsigned char |
| 4409 | |
| 4410 | To match set.method used for the same purpose. |
| 4411 | |
| 4412 | Closes #9179 |
| 4413 | |
| 4414 | - splay: avoid using -1 in unsigned variable |
| 4415 | |
| 4416 | To fix icc compiler warning integer conversion resulted in a change of sign |
| 4417 | |
| 4418 | Closes #9179 |
| 4419 | |
| 4420 | - sendf: store the header type in an usigned char to avoid icc warnings |
| 4421 | |
| 4422 | Closes #9179 |
| 4423 | |
| 4424 | - multi: fix the return code from Curl_pgrsDone() |
| 4425 | |
| 4426 | It does not return a CURLcode. Detected by the icc compiler warning |
| 4427 | "enumerated type mixed with another type" |
| 4428 | |
| 4429 | Closes #9179 |
| 4430 | |
| 4431 | - sendf: make Curl_debug a void function |
| 4432 | |
| 4433 | As virtually no called checked the return code, and those that did |
| 4434 | wrongly treated it as a CURLcode. Detected by the icc compiler warning: |
| 4435 | enumerated type mixed with another type |
| 4436 | |
| 4437 | Closes #9179 |
| 4438 | |
| 4439 | - http_chunks: remove an assign + typecast |
| 4440 | |
| 4441 | As it caused icc to complain: "pointer cast involving 64-bit pointed-to |
| 4442 | type" |
| 4443 | |
| 4444 | Closes #9179 |
| 4445 | |
| 4446 | - vtls: make Curl_ssl_backend() return the enum type curl_sslbackend |
| 4447 | |
| 4448 | To fix the icc warning enumerated type mixed with another type |
| 4449 | |
| 4450 | Closes #9179 |
| 4451 | |
| 4452 | - curl-compilers.m4: make icc use -diag* options and disable two warnings |
| 4453 | |
| 4454 | -wd and -we are deprecated and are now -diag-disable and -diag-error |
| 4455 | |
| 4456 | Disable warning 1024 and 2259 |
| 4457 | |
| 4458 | Closes #9179 |
| 4459 | |
| 4460 | - [Matthew Thompson brought this change] |
| 4461 | |
| 4462 | GHA: add two Intel compiler CI jobs |
| 4463 | |
| 4464 | Closes #9179 |
| 4465 | |
| 4466 | - [Daniel Katz brought this change] |
| 4467 | |
| 4468 | curl-functions.m4: check whether atomics can link rather than just compile |
| 4469 | |
| 4470 | Some build toolchains support C11 atomics (i.e., _Atomic types), but |
| 4471 | will not link the associated atomics runtime unless a flag is passed. In |
| 4472 | such an environment, linking an application with libcurl.a can fail due |
| 4473 | to undefined symbols for atomic load/store functions. |
| 4474 | |
| 4475 | I encountered this behavior when upgrading curl to 7.84.0 and attempting |
| 4476 | to build with Solaris Studio 12.6. Solaris provides the flag |
| 4477 | -xatomic=[gcc | studio], allowing users to link to one of two atomics |
| 4478 | runtime implementations. However, if the user does not provide this |
| 4479 | flag, then neither runtime is linked. This led to builds failing in CI. |
| 4480 | |
| 4481 | Closes #9190 |
| 4482 | |
| 4483 | - [Rosen Penev brought this change] |
| 4484 | |
| 4485 | curl-wolfssl.m4: add options header when building test code |
| 4486 | |
| 4487 | Needed for certain configurations of wolfSSL. Otherwise, missing header |
| 4488 | error may occur. |
| 4489 | |
| 4490 | Tested with OpenWrt. |
| 4491 | |
| 4492 | Closes #9187 |
| 4493 | |
| 4494 | - ftp: use a correct expire ID for timer expiry |
| 4495 | |
| 4496 | This was an accurate error pointed out by the icc warning: enumerated |
| 4497 | type mixed with another type |
| 4498 | |
| 4499 | Ref: #9179 |
| 4500 | Closes #9184 |
| 4501 | |
| 4502 | - sendf: fix paused header writes since after the header API |
| 4503 | |
| 4504 | Regression since d1e4a67 |
| 4505 | |
| 4506 | Reported-by: Sergey Ogryzkov |
| 4507 | Fixes #9180 |
| 4508 | Closes #9182 |
| 4509 | |
| 4510 | - mprintf: fix *dyn_vprintf() when out-of-memory |
| 4511 | |
| 4512 | Follow-up to 0e48ac1f99a. Torture-testing 1455 would lead to a memory |
| 4513 | leak otherwise. |
| 4514 | |
| 4515 | Closes #9185 |
| 4516 | |
| 4517 | - curl-confopts: remove leftover AC_REQUIREs |
| 4518 | |
| 4519 | configure.ac:3488: warning: CURL_CHECK_FUNC_IOCTL is m4_require'd but not m4_defun'd |
| 4520 | configure.ac:3488: warning: CURL_CHECK_FUNC_SETSOCKOPT is m4_require'd but not m4_defun'd |
| 4521 | |
| 4522 | follow-up from 4d73854462f30 |
| 4523 | |
| 4524 | Closes #9183 |
| 4525 | |
| 4526 | - file: fix icc enumerated type mixed with another type warning |
| 4527 | |
| 4528 | Ref: #9179 |
| 4529 | Closes #9181 |
| 4530 | |
| 4531 | Viktor Szakats (19 Jul 2022) |
| 4532 | - tidy-up: delete unused build configuration macros |
| 4533 | |
| 4534 | Most of them feature guards: |
| 4535 | |
| 4536 | - `CURL_INCLUDES_SYS_UIO` [1] |
| 4537 | - `HAVE_ALLOCA_H` [2] |
| 4538 | - `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unused since de71e68000c8624ea13f90b136f8734dd0fb1bdc) |
| 4539 | - `HAVE_DLFCN_H` |
| 4540 | - `HAVE_DLOPEN` |
| 4541 | - `HAVE_DOPRNT` |
| 4542 | - `HAVE_FCNTL` |
| 4543 | - `HAVE_GETHOSTBYNAME` [3] |
| 4544 | - `HAVE_GETOPT_H` |
| 4545 | - `HAVE_GETPASS` |
| 4546 | - `HAVE_GETPROTOBYNAME` |
| 4547 | - `HAVE_GETSERVBYNAME` |
| 4548 | - `HAVE_IDN_FREE*` |
| 4549 | - `HAVE_INET_ADDR` |
| 4550 | - `HAVE_IOCTL` |
| 4551 | - `HAVE_KRB4` |
| 4552 | - `HAVE_KRB_GET_OUR_IP_FOR_REALM` |
| 4553 | - `HAVE_KRB_H` |
| 4554 | - `HAVE_LDAPSSL_H` |
| 4555 | - `HAVE_LDAP_INIT_FD` |
| 4556 | - `HAVE_LIBDL` |
| 4557 | - `HAVE_LIBNSL` |
| 4558 | - `HAVE_LIBRESOLV*` |
| 4559 | - `HAVE_LIBUCB` |
| 4560 | - `HAVE_LL` |
| 4561 | - `HAVE_LOCALTIME_R` |
| 4562 | - `HAVE_MALLOC_H` |
| 4563 | - `HAVE_MEMCPY` |
| 4564 | - `HAVE_MEMORY_H` |
| 4565 | - `HAVE_NETINET_IF_ETHER_H` |
| 4566 | - `HAVE_NI_WITHSCOPEID` |
| 4567 | - `HAVE_OPENSSL_CRYPTO_H` |
| 4568 | - `HAVE_OPENSSL_ERR_H` |
| 4569 | - `HAVE_OPENSSL_PEM_H` |
| 4570 | - `HAVE_OPENSSL_PKCS12_H` |
| 4571 | - `HAVE_OPENSSL_RAND_H` |
| 4572 | - `HAVE_OPENSSL_RSA_H` |
| 4573 | - `HAVE_OPENSSL_SSL_H` |
| 4574 | - `HAVE_OPENSSL_X509_H` |
| 4575 | - `HAVE_PEM_H` |
| 4576 | - `HAVE_POLL` |
| 4577 | - `HAVE_RAND_SCREEN` |
| 4578 | - `HAVE_RAND_STATUS` |
| 4579 | - `HAVE_RECVFROM` |
| 4580 | - `HAVE_SETSOCKOPT` |
| 4581 | - `HAVE_SETVBUF` |
| 4582 | - `HAVE_SIZEOF_LONG_DOUBLE` |
| 4583 | - `HAVE_SOCKIO_H` |
| 4584 | - `HAVE_SOCK_OPTS` |
| 4585 | - `HAVE_STDIO_H` |
| 4586 | - `HAVE_STRCASESTR` |
| 4587 | - `HAVE_STRFTIME` |
| 4588 | - `HAVE_STRLCAT` |
| 4589 | - `HAVE_STRNCMPI` |
| 4590 | - `HAVE_STRNICMP` |
| 4591 | - `HAVE_STRSTR` |
| 4592 | - `HAVE_STRUCT_IN6_ADDR` |
| 4593 | - `HAVE_TLD_H` |
| 4594 | - `HAVE_TLD_STRERROR` |
| 4595 | - `HAVE_UNAME` |
| 4596 | - `HAVE_USLEEP` |
| 4597 | - `HAVE_WINBER_H` |
| 4598 | - `HAVE_WRITEV` |
| 4599 | - `HAVE_X509_H` |
| 4600 | - `LT_OBJDIR` |
| 4601 | - `NEED_BASENAME_PROTO` |
| 4602 | - `NOT_NEED_LIBNSL` |
| 4603 | - `OPENSSL_NO_KRB5` |
| 4604 | - `RECVFROM_TYPE*` |
| 4605 | - `SIZEOF_LONG_DOUBLE` |
| 4606 | - `STRERROR_R_TYPE_ARG3` |
| 4607 | - `USE_YASSLEMUL` |
| 4608 | - `_USRDLL` (from CMake) [4] |
| 4609 | |
| 4610 | [1] Related parts in `m4/curl-functions.m4` and `configure.ac` might |
| 4611 | also be deleted. |
| 4612 | |
| 4613 | [2] Related comment can possibly be deleted in |
| 4614 | `packages/vms/generate_config_vms_h_curl.com`. |
| 4615 | |
| 4616 | [3] There are more instances of this in autotools, but I did not dare to |
| 4617 | touch those. Looked like it's used to detect socket support. |
| 4618 | |
| 4619 | [4] This is necessary for MFC (Microsoft Foundation Class) DLLs to |
| 4620 | force linking MFC components statically to the DLL. `libcurl.dll` |
| 4621 | does not use MFC, so we can delete this define. |
| 4622 | Ref: https://docs.microsoft.com/cpp/build/regular-dlls-statically-linked-to-mfc |
| 4623 | |
| 4624 | Script that can help finding unused settings like above: |
| 4625 | ```shell |
| 4626 | |
| 4627 | autoheader configure.ac # generate lib/curl_config.h.in |
| 4628 | |
| 4629 | { |
| 4630 | grep -o -E 'set\([A-Z][A-Z0-9_]{3,}' CMake/Platforms/WindowsCache.cmake | sed -E 's|set\(||g' |
| 4631 | grep -o -E -h '#define +[A-Z][A-Z0-9_]{3,}' lib/config-*.h | sed -E 's|#define +||g' |
| 4632 | grep -o -E '#cmakedefine +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.cmake | sed -E 's|#cmakedefine +||g' |
| 4633 | grep -o -E '#undef +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.in | sed -E 's|#undef +||g' |
| 4634 | } | sort -u | grep -v -F 'HEADER_CURL_' | while read -r def; do |
| 4635 | c="$(git grep -w -F "${def}" | grep -v -E -c '(/libcurl\.tmpl|^lib/config-|^lib/curl_config\.h\.cmake|^CMakeLists\.txt|^CMake/Platforms/WindowsCache\.cmake|^packages/vms/config_h\.com|^m4/curl-functions\.m4|^acinclude\.m4|^configure\.ac)')" |
| 4636 | if [ "${c}" = '0' ]; then |
| 4637 | echo "${def}" |
| 4638 | fi |
| 4639 | done |
| 4640 | ``` |
| 4641 | |
| 4642 | Reviewed-by: Daniel Stenberg |
| 4643 | Closes #9044 |
| 4644 | |
| 4645 | Daniel Stenberg (19 Jul 2022) |
| 4646 | - RELEASE-NOTES: synced |
| 4647 | |
| 4648 | - cookie: treat a blank domain in Set-Cookie: as non-existing |
| 4649 | |
| 4650 | This matches what RFC 6265 section 5.2.3 says. |
| 4651 | |
| 4652 | Extended test 31 to verify. |
| 4653 | |
| 4654 | Fixes #9164 |
| 4655 | Reported-by: Gwen Shapira |
| 4656 | Closes #9177 |
| 4657 | |
| 4658 | - [Patrick Monnerat brought this change] |
| 4659 | |
| 4660 | base64: base64url encoding has no padding |
| 4661 | |
| 4662 | See RFC4648 section 5 and RFC7540 section 3.2.1. |
| 4663 | |
| 4664 | Suppress generation of '=' padding of base64url encoding. This is |
| 4665 | accomplished by considering the string beginning at offset 64 in the |
| 4666 | character table as the padding: this is "=" for base64, "" for base64url. |
| 4667 | |
| 4668 | Also use strchr() to replace character search loops where possible. |
| 4669 | |
| 4670 | Suppress erroneous comments about empty encoding results. |
| 4671 | |
| 4672 | Adjust unit test 1302 to unpadded base64url encoding and add tests for |
| 4673 | empty results. |
| 4674 | |
| 4675 | Closes #9139 |
| 4676 | |
| 4677 | - easyoptions: fix icc warning |
| 4678 | |
| 4679 | easyoptions.c(360): error #188: enumerated type mixed with another type |
| 4680 | |
| 4681 | Ref: #9156 |
| 4682 | Reported-by: Matthew Thompson |
| 4683 | Closes #9176 |
| 4684 | |
| 4685 | - [lwthiker brought this change] |
| 4686 | |
| 4687 | h2h3: fix overriding the 'TE: Trailers' header |
| 4688 | |
| 4689 | A 'TE: Trailers' header is explicitly replaced by 'te: trailers' |
| 4690 | (lowercase) in Curl_pseudo_headers() when building the list of HTTP/2 or |
| 4691 | HTTP/3 headers. However, this is then replaced again by the original |
| 4692 | value due to a bug, resulting in the uppercased version being sent. Some |
| 4693 | HTTP/2 servers reject the whole HTTP/2 stream when this is the case. |
| 4694 | |
| 4695 | Closes #9170 |
| 4696 | |
| 4697 | - lib3026: reduce the number of threads to 100 |
| 4698 | |
| 4699 | Down from 1000, to make it run and work in more systems. |
| 4700 | |
| 4701 | Fixes #9172 |
| 4702 | Reported-by: Ćrico Nogueira Rolim |
| 4703 | Closes #9173 |
| 4704 | |
| 4705 | - doh: move doh related struct definitions to doh.h |
| 4706 | |
| 4707 | and make 'dnstype' in 'struct dnsprobe' use the DNStype to fix the icc compiler warning: |
| 4708 | |
| 4709 | doh.c(924): error #188: enumerated type mixed with another type |
| 4710 | |
| 4711 | Reported-by: Matthew Thompson |
| 4712 | Ref #9156 |
| 4713 | Closes #9174 |
| 4714 | |
| 4715 | Viktor Szakats (17 Jul 2022) |
| 4716 | - Makefile.m32: stop trying to build libcares.a [ci skip] |
| 4717 | |
| 4718 | Before this patch, `lib/Makefile.m32` had a rule to build `libcares.a` in |
| 4719 | `-cares`-enabled builds, via c-ares's own `Makefile.m32`. Committed in |
| 4720 | 2007 [1]. The commit message doesn't specifically address this particular |
| 4721 | change. This logic comes from the times when c-ares was part of the curl |
| 4722 | source tree, hence the special treatment. |
| 4723 | |
| 4724 | This feature creates problems when building c-ares first, using CMake |
| 4725 | and pointing `LIBCARES_PATH` to its install prefix, where `Makefile.m32` |
| 4726 | is missing in such case. A sub-build for c-ares is undesired also when |
| 4727 | c-ares had already been build via its own `Makefile.m32`. |
| 4728 | |
| 4729 | To avoid the sub-build, this patch deletes its Makefile rule. After this |
| 4730 | patch `libcares.a` needs to be manually built before using it in |
| 4731 | `Makefile.m32`. Aligning it with the rest of dependencies. |
| 4732 | |
| 4733 | [1] 46c92c0b806da041d7a5c6fb64dbcdc474d99b31 |
| 4734 | |
| 4735 | Reviewed-by: Daniel Stenberg |
| 4736 | Closes #9169 |
| 4737 | |
| 4738 | Daniel Stenberg (17 Jul 2022) |
| 4739 | - curl: writeout: fix repeated header outputs |
| 4740 | |
| 4741 | The function stored a terminating zero into the buffer for convenience, |
| 4742 | but when on repeated calls that would cause problems. Starting now, the |
| 4743 | passed in buffer is not modified. |
| 4744 | |
| 4745 | Reported-by: highmtworks on github |
| 4746 | Fixes #9150 |
| 4747 | Closes #9152 |
| 4748 | |
| 4749 | - curl_multi_timeout.3: clarify usage |
| 4750 | |
| 4751 | Fixes #9155 |
| 4752 | Closes #9157 |
| 4753 | Reported-by: jvvprasad78 on github |
| 4754 | |
| 4755 | - mprintf: make dprintf_formatf never return negative |
| 4756 | |
| 4757 | This function no longer returns a negative value if the formatting |
| 4758 | string is bad since the return value would sometimes be propagated as a |
| 4759 | return code from the mprintf* functions and they are documented to |
| 4760 | return the length of the output. Which cannot be negative. |
| 4761 | |
| 4762 | Fixes #9149 |
| 4763 | Closes #9151 |
| 4764 | Reported-by: yiyuaner on github |
| 4765 | |
| 4766 | Viktor Szakats (17 Jul 2022) |
| 4767 | - trace: 0x7F character is non-printable |
| 4768 | |
| 4769 | `0x7F` is `DEL`, a non-printable symbol, so print it as |
| 4770 | `UNPRINTABLE_CHAR`. |
| 4771 | |
| 4772 | Reported-by: MasterInQuestion on github |
| 4773 | Fixes #9162 |
| 4774 | Closes #9166 |
| 4775 | |
| 4776 | - doh: use https protocol by default |
| 4777 | |
| 4778 | The only allowed protocol is https, so it makes sense to use that |
| 4779 | by default if not passed explicitly by the user. |
| 4780 | |
| 4781 | Reported-by: MasterInQuestion on github |
| 4782 | Reviewed-by: Jay Satiro |
| 4783 | Fixes #9163 |
| 4784 | Closes #9165 |
| 4785 | |
| 4786 | - openssl: fix BoringSSL symbol conflicts with LDAP and Schannel |
| 4787 | |
| 4788 | Same issue as here [1], but this time when building curl with BoringSSL |
| 4789 | for Windows with LDAP(S) or Schannel support enabled. |
| 4790 | |
| 4791 | Apply the same fix [2] for these source files as well. |
| 4792 | |
| 4793 | This can also be fixed by moving `#include "urldata.h"` _before_ |
| 4794 | including `winldap.h` and `schnlsp.h` respectively. This seems like |
| 4795 | a cleaner fix, though I'm not sure why it works and if it has any |
| 4796 | downside. |
| 4797 | |
| 4798 | [1] https://github.com/curl/curl/issues/5669 |
| 4799 | [2] https://github.com/curl/curl/commit/fbe07c6829ba8c5793c84c2856526e19e9029ab9 |
| 4800 | |
| 4801 | Co-authored-by: Jay Satiro |
| 4802 | Closes #9110 |
| 4803 | |
| 4804 | Daniel Stenberg (13 Jul 2022) |
| 4805 | - asyn-thread: make getaddrinfo_complete return CURLcode |
| 4806 | |
| 4807 | ... as the only caller that cares about what it returns assumes that |
| 4808 | anyway. This caused icc to warn: |
| 4809 | |
| 4810 | asyn-thread.c(505): error #188: enumerated type mixed with another type |
| 4811 | result = getaddrinfo_complete(data); |
| 4812 | |
| 4813 | Repoorted-by: Matthew Thompson |
| 4814 | Bug: https://github.com/curl/curl/issues/9081#issuecomment-1182143076 |
| 4815 | Closes #9146 |
| 4816 | |
| 4817 | - easy_lock: fix build with icc |
| 4818 | |
| 4819 | The Intel compiler tries to look like GCC *and* clang *and* it lies in |
| 4820 | its __has_builtin() function (returns true when it should return false), |
| 4821 | so override it. |
| 4822 | |
| 4823 | Reported-by: Matthew Thompson |
| 4824 | Fixes #9081 |
| 4825 | Closes #9144 |
| 4826 | |
| 4827 | - configure: fix --disable-headers-api |
| 4828 | |
| 4829 | Reported-by: MichaÅ Antoniak |
| 4830 | Fixes #9134 |
| 4831 | Closes #9143 |
| 4832 | |
| 4833 | - test3026: require 'threadsafe' |
| 4834 | |
| 4835 | Reported-by: Sukanya Hanumanthu |
| 4836 | Fixes #9141 |
| 4837 | Closes #9142 |
| 4838 | |
| 4839 | - [Even Rouault brought this change] |
| 4840 | |
| 4841 | CMake: link curl to its dependencies with PRIVATE |
| 4842 | |
| 4843 | The current PUBLIC visibility causes issues for downstream users. |
| 4844 | Cf https://github.com/OSGeo/PROJ/pull/3172#issuecomment-1157942986 |
| 4845 | |
| 4846 | Reviewed-by: Jakub Zakrzewski |
| 4847 | Closes #9125 |
| 4848 | |
| 4849 | - [Even Rouault brought this change] |
| 4850 | |
| 4851 | CMake: remove APPEND in export(TARGETS) |
| 4852 | |
| 4853 | When running cmake several times, new content was appended to already |
| 4854 | existing generated files, which is not appropriate |
| 4855 | |
| 4856 | Reviewed-by: Jakub Zakrzewski |
| 4857 | Closes #9124 |
| 4858 | |
| 4859 | - [Tatsuhiro Tsujikawa brought this change] |
| 4860 | |
| 4861 | ngtcp2: implement cb_h3_stop_sending and cb_h3_reset_stream callbacks |
| 4862 | |
| 4863 | Closes #9135 |
| 4864 | |
| 4865 | - RELEASE-NOTES: synced |
| 4866 | |
| 4867 | Viktor Szakats (11 Jul 2022) |
| 4868 | - build: improve OS string in CMake and `config-win32.h` |
| 4869 | |
| 4870 | This patch makes CMake fill the "OS string" with the value of |
| 4871 | `CMAKE_C_COMPILER_TARGET`, if passed. This typically contains a triplet, |
| 4872 | the same we can pass to `./configure` via `--host=`. |
| 4873 | |
| 4874 | For non-CMake, non-autotools, Windows builds, this patch adds the ability |
| 4875 | to override the default `OS` value in `lib/config-win32.h`. |
| 4876 | |
| 4877 | With these its possible to get the same OS string across the three build |
| 4878 | systems. |
| 4879 | |
| 4880 | This patch supersedes the earlier, partial, CMake-only solution: |
| 4881 | 435f395f3f8c11eebfcc243ca55ebcc11a19b8b8, thus retiring the |
| 4882 | `CURL_OS_SUFFIX` CMake option. |
| 4883 | |
| 4884 | Reviewed-by: Jay Satiro |
| 4885 | Closes #9117 |
| 4886 | |
| 4887 | - Makefile.m32: add `CURL_RC` and `CURL_STRIP` variables [ci skip] |
| 4888 | |
| 4889 | They allow to override the hardcoded values for the `windres` and `strip` |
| 4890 | tools, complementing the existing set of `CURL_{CC,AR,RANLIB}` variables. |
| 4891 | |
| 4892 | `CURL_RC` comes handy when using LLVM tools with `CROSSPREFIX=llvm-` and |
| 4893 | `CURL_CC=clang` set on current latest debian:unstable or earlier, where |
| 4894 | `llvm-windres` is missing, and a `CURL_RC=<triplet>-windres` fixes it. |
| 4895 | Hopefully this will be fixed in the llvm package. FWIW `llvm-windres` |
| 4896 | does exist in Homebrew llvm, MSYS2 llvm and llvm-mingw. |
| 4897 | |
| 4898 | Reviewed-by: Daniel Stenberg |
| 4899 | Closes #9132 |
| 4900 | |
| 4901 | Daniel Stenberg (10 Jul 2022) |
| 4902 | - [Tatsuhiro Tsujikawa brought this change] |
| 4903 | |
| 4904 | ngtcp2: fix stall or busy loop on STOP_SENDING with upload data |
| 4905 | |
| 4906 | Fixes #9122 |
| 4907 | Closes #9123 |
| 4908 | |
| 4909 | - [Xiaoke Wang brought this change] |
| 4910 | |
| 4911 | tool_operate: better cleanup of easy handle in exit path |
| 4912 | |
| 4913 | Closes #9114 |
| 4914 | |
| 4915 | - [Xiaoke Wang brought this change] |
| 4916 | |
| 4917 | getinfo: return better error on NULL as first argument |
| 4918 | |
| 4919 | Closes #9114 |
| 4920 | |
| 4921 | - tool_getparam: repair cleanarg |
| 4922 | |
| 4923 | Regression since 9e5669f. |
| 4924 | |
| 4925 | Make sure the "cleaning" of command line arguments is done on the |
| 4926 | original argv[] pointers. As a bonus, it also exits better on out of |
| 4927 | memory error. |
| 4928 | |
| 4929 | Reported-by: Litter White |
| 4930 | Fixes #9128 |
| 4931 | Closes #9130 |
| 4932 | |
| 4933 | Jay Satiro (10 Jul 2022) |
| 4934 | - docs: explain curl_easy_escape/unescape curl handle is ignored |
| 4935 | |
| 4936 | 26101421 (precedes 7.82.0) removed character conversion support used by |
| 4937 | very old legacy operating systems and since then the curl handle passed |
| 4938 | to curl_easy_escape/unescape is always ignored. |
| 4939 | |
| 4940 | Bug: https://github.com/curl/curl/discussions/9115 |
| 4941 | Reported-by: Ted Lyngmo |
| 4942 | |
| 4943 | Closes https://github.com/curl/curl/pull/9121 |
| 4944 | |
| 4945 | Viktor Szakats (8 Jul 2022) |
| 4946 | - openssl: add `CURL_BORINGSSL_VERSION` to identify BoringSSL |
| 4947 | |
| 4948 | BoringSSL doesn't keep a version number, and doesn't self-identify itself |
| 4949 | via any other revision number via its own headers. We can identify |
| 4950 | BoringSSL revisions by their commit hash. This hash is typically known by |
| 4951 | the builder. This patch adds a way to pass this hash to libcurl, so that |
| 4952 | it can display in the curl version string: |
| 4953 | |
| 4954 | For example: |
| 4955 | |
| 4956 | `CFLAGS=-DCURL_BORINGSSL_VERSION="c239ffd0"` |
| 4957 | |
| 4958 | ``` |
| 4959 | curl 7.84.0 (x86_64-w64-mingw32) libcurl/7.84.0 BoringSSL/c239ffd0 (Schannel) zlib/1.2.12 [...] |
| 4960 | Release-Date: 2022-06-27 |
| 4961 | Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 [...] |
| 4962 | Features: alt-svc AsynchDNS brotli gsasl HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos [...] |
| 4963 | ``` |
| 4964 | |
| 4965 | The setting is optional, and if not passed, BoringSSL will appear without |
| 4966 | a version number, like before this patch. |
| 4967 | |
| 4968 | Closes #9113 |
| 4969 | |
| 4970 | Jay Satiro (8 Jul 2022) |
| 4971 | - escape: remove outdated comment |
| 4972 | |
| 4973 | Bug: https://github.com/curl/curl/discussions/9115 |
| 4974 | Reported-by: Ted Lyngmo |
| 4975 | |
| 4976 | - [Tatsuhiro Tsujikawa brought this change] |
| 4977 | |
| 4978 | ngtcp2: Fix missing initialization of nghttp3_nv.flags |
| 4979 | |
| 4980 | Closes https://github.com/curl/curl/pull/9118 |
| 4981 | |
| 4982 | Daniel Stenberg (6 Jul 2022) |
| 4983 | - [Brad Forschinger brought this change] |
| 4984 | |
| 4985 | netrc.d: remove spurious quote |
| 4986 | |
| 4987 | Closes #9111 |
| 4988 | |
| 4989 | Viktor Szakats (6 Jul 2022) |
| 4990 | - Makefile.m32: add `NGTCP2_LIBS` option [ci skip] |
| 4991 | |
| 4992 | Makefile.m32's ngtcp2 has its two libs hardwired for OpenSSL. |
| 4993 | Add `NGTCP2_LIBS` envvar to override them with a custom list, |
| 4994 | making it possible to use BoringSSL, or any other backend. |
| 4995 | |
| 4996 | Closes #9109 |
| 4997 | |
| 4998 | Jay Satiro (6 Jul 2022) |
| 4999 | - [Evgeny Grin (Karlson2k) brought this change] |
| 5000 | |
| 5001 | digest: fix missing increment of 'nc' value for auth-int |
| 5002 | |
| 5003 | - Increment nc regardless of qop type. |
| 5004 | |
| 5005 | Prior to this change nc was only incremented for qop type auth even |
| 5006 | though libcurl sends nc with any qop. |
| 5007 | |
| 5008 | Closes https://github.com/curl/curl/pull/9090 |
| 5009 | |
| 5010 | Daniel Stenberg (5 Jul 2022) |
| 5011 | - RELEASE-NOTES: synced |
| 5012 | |
| 5013 | Bumped to 7.85.0 |
| 5014 | |
| 5015 | - urldata: reduce size of four ftp related members |
| 5016 | |
| 5017 | ftp_filemethod, ftpsslauth and ftp_ccc are now uchars |
| 5018 | |
| 5019 | accepttimeout is now unsigned int - almost 50 days ought to be enough |
| 5020 | for this value. |
| 5021 | |
| 5022 | Closes #9106 |
| 5023 | |
| 5024 | - urldata: reduce three type-members from int to uchar |
| 5025 | |
| 5026 | - timecondition |
| 5027 | - proxytype |
| 5028 | - method |
| 5029 | |
| 5030 | ... previously used their enum type in the struct, which made them |
| 5031 | unnecesarily large. |
| 5032 | |
| 5033 | Closes #9105 |
| 5034 | |
| 5035 | - CURLOPT_SERVER_RESPONSE_TIMEOUT: the new name |
| 5036 | |
| 5037 | Starting now, CURLOPT_FTP_RESPONSE_TIMEOUT is the alias instead of the |
| 5038 | other way around. |
| 5039 | |
| 5040 | Since 7.20.0, CURLOPT_SERVER_RESPONSE_TIMEOUT has existed as an alias |
| 5041 | but since the option is for more protocols than FTP the more "correct" |
| 5042 | version of the option is the "server" one so now we switch. |
| 5043 | |
| 5044 | Closes #9104 |
| 5045 | |
| 5046 | - urldata: make 'ftp_create_missing_dirs' a uchar |
| 5047 | |
| 5048 | It only ever holds the values 0-2. |
| 5049 | |
| 5050 | Closes #9103 |
| 5051 | |
| 5052 | - [Don J Olmstead brought this change] |
| 5053 | |
| 5054 | cmake: support ngtcp2 boringssl backend |
| 5055 | |
| 5056 | Update the ngtcp2 find module to detect the boringssl backend. Determine |
| 5057 | if the underlying OpenSSL implementation is BoringSSL and if so use that |
| 5058 | as the ngtcp2 backend. |
| 5059 | |
| 5060 | Reviewed-by: Jakub Zakrzewski |
| 5061 | Closes #9065 |
| 5062 | |
| 5063 | - urldata: change 4 timeouts to unsigned int from long |
| 5064 | |
| 5065 | They're not used for that long times anyway, 32 bit milliseconds is long |
| 5066 | enough. |
| 5067 | |
| 5068 | Closes #9101 |
| 5069 | |
| 5070 | - urldata: make 'use_netrc' a uchar |
| 5071 | |
| 5072 | Closes #9102 |
| 5073 | |
| 5074 | - urldata: make 'buffer_size' an unsigned int |
| 5075 | |
| 5076 | It is already capped at READBUFFER_MAX which fits easily in 32 bits. |
| 5077 | |
| 5078 | Closes #9098 |
| 5079 | |
| 5080 | - urldata: remove the unused 'rtspversion' struct member |
| 5081 | |
| 5082 | Closes #9100 |
| 5083 | |
| 5084 | - urldata: make 'use_port' an usigned short |
| 5085 | |
| 5086 | ... instead of a long. It is already enforced to not attempt to set any |
| 5087 | value outside of 16 bits unsigned. |
| 5088 | |
| 5089 | Closes #9099 |
| 5090 | |
| 5091 | - urldata: store dns cache timeout in an int |
| 5092 | |
| 5093 | 68 years ought to be enough for most. |
| 5094 | |
| 5095 | Closes #9097 |
| 5096 | |
| 5097 | - curl: proto2num: make sure obuf is inited |
| 5098 | |
| 5099 | Detected by Coverity. CID 1507052. |
| 5100 | |
| 5101 | Closes #9096 |
| 5102 | |
| 5103 | - cookie: use %zu to infof() for size_t values |
| 5104 | |
| 5105 | Detected by Coverity. CID 1507051 |
| 5106 | Closes #9095 |
| 5107 | |
| 5108 | Viktor Szakats (4 Jul 2022) |
| 5109 | - makefile.m32: add support for custom ARCH [ci skip] |
| 5110 | |
| 5111 | When building curl for target platform other than x64 and x86, it is now |
| 5112 | possible to pass `ARCH=custom`, that will omit all hardcoded logic for |
| 5113 | setting up CFLAGS/LDFLAGS/RCFLAGS for these platforms, and let these be |
| 5114 | customized via `CURL_CFLAG_EXTRAS`, `CURL_LDFLAG_EXTRAS`, and a newly |
| 5115 | added one for the resource compiler: `CURL_RCFLAG_EXTRAS`. |
| 5116 | |
| 5117 | This makes it possible to use `makefile.m32` to build for ARM64 for |
| 5118 | example. |
| 5119 | |
| 5120 | Reviewed-by: Daniel Stenberg |
| 5121 | Closes #9092 |
| 5122 | |
| 5123 | - cmake: do not force Windows target versions |
| 5124 | |
| 5125 | The goal of this patch is to avoid CMake forcing specific Windows |
| 5126 | versions and rely on toolchain defaults or manual selection instead. |
| 5127 | This gives back control to the user. This also brings CMake closer to |
| 5128 | how autotools and `Makefile.m32` behaves in this regard. |
| 5129 | |
| 5130 | - CMake had a setting `ENABLE_INET_PTON` defaulting to `ON`, which did |
| 5131 | nothing else than fixing the Windows build target to Vista. This also |
| 5132 | happened when the toolchain did not have Vista support (e.g. original |
| 5133 | MinGW), breaking such builds. |
| 5134 | |
| 5135 | In other environments it did not make a user-facing difference, |
| 5136 | because libcurl has its own pton() implementation, so it works well |
| 5137 | with or without Vista's inet_pton(). |
| 5138 | |
| 5139 | This patch drops this setting. inet_pton() is now used whenever |
| 5140 | building for Vista or newer, either when requested manually or by |
| 5141 | default with modern toolchains (e.g. mingw-w64). Older envs will fall |
| 5142 | back to curl's pton(). |
| 5143 | |
| 5144 | Ref: https://github.com/curl/curl/pull/9027#issuecomment-1164157604 |
| 5145 | Ref: https://github.com/curl/curl/pull/8997#issuecomment-1164344155 |
| 5146 | |
| 5147 | - When the user did no select a Windows target version manually, stop |
| 5148 | explicitly targeting Windows XP, and instead use the toolchain default. |
| 5149 | |
| 5150 | This may pose an issue with old toolchains defaulting to pre-XP |
| 5151 | targets. In such case you must manually target Windows XP via: |
| 5152 | `-DCURL_TARGET_WINDOWS_VERSION=0x0501` |
| 5153 | or |
| 5154 | `-DCMAKE_C_FLAGS=-D_WIN32_WINNT=0x0501` |
| 5155 | |
| 5156 | Reviewed-by: Jay Satiro |
| 5157 | Reviewed-by: Marcel Raad |
| 5158 | Closes #9046 |
| 5159 | |
| 5160 | - windows: improve random source |
| 5161 | |
| 5162 | - Use the Windows API to seed the fallback random generator. |
| 5163 | |
| 5164 | This ensures to always have a random seed, even when libcurl is built |
| 5165 | with a vtls backend lacking a random generator API, such as rustls |
| 5166 | (experimental), GSKit and certain mbedTLS builds, or, when libcurl is |
| 5167 | built without a TLS backend. We reuse the Windows-specific random |
| 5168 | function from the Schannel backend. |
| 5169 | |
| 5170 | - Implement support for `BCryptGenRandom()` [1] on Windows, as a |
| 5171 | replacement for the deprecated `CryptGenRandom()` [2] function. |
| 5172 | |
| 5173 | It is used as the secure random generator for Schannel, and also to |
| 5174 | provide entropy for libcurl's fallback random generator. The new |
| 5175 | function is supported on Vista and newer via its `bcrypt.dll`. It is |
| 5176 | used automatically when building for supported versions. It also works |
| 5177 | in UWP apps (the old function did not). |
| 5178 | |
| 5179 | - Clear entropy buffer before calling the Windows random generator. |
| 5180 | |
| 5181 | This avoids using arbitrary application memory as entropy (with |
| 5182 | `CryptGenRandom()`) and makes sure to return in a predictable state |
| 5183 | when an API call fails. |
| 5184 | |
| 5185 | [1] https://docs.microsoft.com/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom |
| 5186 | [2] https://docs.microsoft.com/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom |
| 5187 | |
| 5188 | Closes #9027 |
| 5189 | |
| 5190 | Daniel Stenberg (4 Jul 2022) |
| 5191 | - setopt: add CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR |
| 5192 | |
| 5193 | ... as replacements for deprecated CURLOPT_PROTOCOLS and |
| 5194 | CURLOPT_REDIR_PROTOCOLS as these new ones do not risk running into the |
| 5195 | 32 bit limit the old ones are facing. |
| 5196 | |
| 5197 | CURLINFO_PROTCOOL is now deprecated. |
| 5198 | |
| 5199 | The curl tool is updated to use the new options. |
| 5200 | |
| 5201 | Added test 1597 to verify the libcurl protocol parser. |
| 5202 | |
| 5203 | Closes #8992 |
| 5204 | |
| 5205 | - digest: simplify a switch() to a simple if |
| 5206 | |
| 5207 | - digest: provide a special bit for "sess" algos |
| 5208 | |
| 5209 | Also shortened the names and moved them to the .c file since they are |
| 5210 | private for this source file only. Also made them #defines instead of |
| 5211 | enum. |
| 5212 | |
| 5213 | Closes #9079 |
| 5214 | |
| 5215 | Jay Satiro (4 Jul 2022) |
| 5216 | - [Thomas WeiĆschuh brought this change] |
| 5217 | |
| 5218 | select: do not return fatal error on EINTR from poll() |
| 5219 | |
| 5220 | The same was done for select() in 5912da25 but poll() was missed. |
| 5221 | |
| 5222 | Bug: https://bugs.archlinux.org/task/75201 |
| 5223 | Reported-by: Alexandre Bury (gyscos at archlinux) |
| 5224 | |
| 5225 | Ref: https://github.com/curl/curl/issues/8921 |
| 5226 | Ref: https://github.com/curl/curl/pull/8961 |
| 5227 | Ref: https://github.com/curl/curl/commit/5912da25#r77584294 |
| 5228 | |
| 5229 | Closes https://github.com/curl/curl/pull/9091 |
| 5230 | |
| 5231 | - [Kai Pastor brought this change] |
| 5232 | |
| 5233 | cmake: fix build for mingw cross compile |
| 5234 | |
| 5235 | - Change normaliz lib name to all lowercase. |
| 5236 | |
| 5237 | This is from a standing patch in vcpkg: |
| 5238 | Mingw has libnormaliz.a. For case-sensitive file systems (e.g. cross |
| 5239 | builds from Linux), the spelling must match exactly. |
| 5240 | |
| 5241 | Closes https://github.com/curl/curl/pull/9084 |
| 5242 | |
| 5243 | - easy_lock: fix build for mingw |
| 5244 | |
| 5245 | - Define SRWLOCK symbols missing in some mingw environments. |
| 5246 | |
| 5247 | Closes https://github.com/curl/curl/pull/8997 |
| 5248 | |
| 5249 | Daniel Stenberg (2 Jul 2022) |
| 5250 | - tool_progress: avoid division by zero in parallel progress meter |
| 5251 | |
| 5252 | Reported-by: Brian Carpenter |
| 5253 | Fixes #9082 |
| 5254 | Closes #9083 |
| 5255 | |
| 5256 | - http_aws_sigv4.c: remove two unusued includes |
| 5257 | |
| 5258 | Closes #9080 |
| 5259 | |
| 5260 | - .mailmap: additional edit |
| 5261 | |
| 5262 | Follow-up to 861e2a8aca6c7 so that Evgeny appears with the same in git |
| 5263 | logs even when using old email. |
| 5264 | |
| 5265 | - RELEASE-NOTES: synced |
| 5266 | |
| 5267 | bumped to 7.84.1 |
| 5268 | |
| 5269 | - [Evgeny Grin (Karlson2k) brought this change] |
| 5270 | |
| 5271 | .mailmap: updated |
| 5272 | |
| 5273 | - [Evgeny Grin (Karlson2k) brought this change] |
| 5274 | |
| 5275 | THANKS: merged two entries for Evgeny Grin |
| 5276 | |
| 5277 | Also updated THANKS-filter file |
| 5278 | |
| 5279 | Closes #9076 |
| 5280 | |
| 5281 | - [Jilayne Lovejoy brought this change] |
| 5282 | |
| 5283 | lib/curl_path.c: add ISC to license expression |
| 5284 | |
| 5285 | THe text of the ISC license is in this file, so the SPDX license |
| 5286 | expression should be updated |
| 5287 | |
| 5288 | Closes #9073 |
| 5289 | |
| 5290 | - [Sean McArthur brought this change] |
| 5291 | |
| 5292 | hyper: use wakers for curl pause/resume |
| 5293 | |
| 5294 | Closes #9070 |
| 5295 | |
| 5296 | Viktor Szakats (30 Jun 2022) |
| 5297 | - Makefile.m32: do not set the libcurl.rc debug flag [ci skip] |
| 5298 | |
| 5299 | Delete `-DDEBUGBUILD=0` windres option. This was likely meant to |
| 5300 | disable VS_FF_DEBUG in FILEFLAGS, but any assigned value enabled |
| 5301 | it instead. Delete this unnecessary option and thus sync up with |
| 5302 | how CMake compiles libcurl.rc by default. |
| 5303 | |
| 5304 | Reviewed-by: Jay Satiro |
| 5305 | Closes #9069 |
| 5306 | |
| 5307 | Daniel Stenberg (29 Jun 2022) |
| 5308 | - curl.h: CURLE_CONV_FAILED is obsoleted |
| 5309 | |
| 5310 | The last use was removed in 7.82.0. Updated some docs too to reflect the |
| 5311 | current error code situation. |
| 5312 | |
| 5313 | Closes #9067 |
| 5314 | |
| 5315 | - curl: output warning when a cookie is dropped due to size |
| 5316 | |
| 5317 | Dropped from the request, that is. |
| 5318 | |
| 5319 | Closes #9064 |
| 5320 | |
| 5321 | - curl_mime_data.3: polish the wording |
| 5322 | |
| 5323 | Closes #9063 |
| 5324 | |
| 5325 | - configure: check for the stdatomic.h header in configure |
| 5326 | |
| 5327 | ... and only set HAVE_ATOMIC if that header exists since we use |
| 5328 | typedefes set in it. |
| 5329 | |
| 5330 | Reported-by: Ryan Schmidt |
| 5331 | Fixes #9059 |
| 5332 | Closes #9060 |
| 5333 | |
| 5334 | - easy_lock: fix the #ifdef conditional for ia32_pause |
| 5335 | |
| 5336 | To work better with new and old clang compilers. |
| 5337 | |
| 5338 | Reported-by: Ryan Schmidt |
| 5339 | Assisted-by: Joshua Root |
| 5340 | |
| 5341 | Fixes #9058 |
| 5342 | Closes #9062 |
| 5343 | |
| 5344 | - easy_lock: switch to using atomic_int instead of bool |
| 5345 | |
| 5346 | To work with more compilers without requiring separate libs to |
| 5347 | link. Like with gcc-12 for RISC-V on Linux. |
| 5348 | |
| 5349 | Reported-by: Adam Sampson |
| 5350 | Fixes #9055 |
| 5351 | Closes #9061 |
| 5352 | |
| 5353 | - [vvb2060 brought this change] |
| 5354 | |
| 5355 | ngtcp2: fix incompatible function pointer types |
| 5356 | |
| 5357 | Closes #9056 |
| 5358 | |
| 5359 | - [vvb2060 brought this change] |
| 5360 | |
| 5361 | easy_lock.h: use __asm__ instead of asm to fix build |
| 5362 | |
| 5363 | Closes #9056 |
| 5364 | |
| 5365 | - [Samuel Henrique brought this change] |
| 5366 | |
| 5367 | libcurl-security.3: fix typo on macro "SH_" |
| 5368 | |
| 5369 | During the packaging of the latest curl release for Debian, Lintian |
| 5370 | warned me about a typo which causes the section name "Secrets in memory" |
| 5371 | to not be rendered in the manpage due to "SH_" not being recognized as a |
| 5372 | header. |
| 5373 | |
| 5374 | Closes #9057 |
| 5375 | |
| 5376 | - easy_lock.h: include sched.h if available to fix build |
| 5377 | |
| 5378 | Patched-by: Harry Sintonen |
| 5379 | |
| 5380 | Closes #9054 |
| 5381 | |
| 5382 | Version 7.84.0 (27 Jun 2022) |
| 5383 | |
| 5384 | Daniel Stenberg (27 Jun 2022) |
| 5385 | - RELEASE-NOTES: synced |
| 5386 | |
| 5387 | Version 7.84.0 release |
| 5388 | |
| 5389 | - THANKS: contributors from 7.84.0 release notes |
| 5390 | |
| 5391 | - hsts: use Curl_fopen() |
| 5392 | |
| 5393 | - altsvc: use Curl_fopen() |
| 5394 | |
| 5395 | - fopen: add Curl_fopen() for better overwriting of files |
| 5396 | |
| 5397 | Bug: https://curl.se/docs/CVE-2022-32207.html |
| 5398 | CVE-2022-32207 |
| 5399 | Reported-by: Harry Sintonen |
| 5400 | Closes #9050 |
| 5401 | |
| 5402 | - test444: test many received Set-Cookie: |
| 5403 | |
| 5404 | The amount of sent cookies in the test is limited to 80 because hyper |
| 5405 | has its own strict limits in how many headers it allows to be received |
| 5406 | which triggers at some point beyond this number. |
| 5407 | |
| 5408 | - test442/443: test cookie caps |
| 5409 | |
| 5410 | 442 - verify that only 150 cookies are sent |
| 5411 | 443 - verify that the cookie: header remains less than 8K in size |
| 5412 | |
| 5413 | - cookie: apply limits |
| 5414 | |
| 5415 | - Send no more than 150 cookies per request |
| 5416 | - Cap the max length used for a cookie: header to 8K |
| 5417 | - Cap the max number of received Set-Cookie: headers to 50 |
| 5418 | |
| 5419 | Bug: https://curl.se/docs/CVE-2022-32205.html |
| 5420 | CVE-2022-32205 |
| 5421 | Reported-by: Harry Sintonen |
| 5422 | Closes #9048 |
| 5423 | |
| 5424 | - test387: verify rejection of compression chain attack |
| 5425 | |
| 5426 | - content_encoding: return error on too many compression steps |
| 5427 | |
| 5428 | The max allowed steps is arbitrarily set to 5. |
| 5429 | |
| 5430 | Bug: https://curl.se/docs/CVE-2022-32206.html |
| 5431 | CVE-2022-32206 |
| 5432 | Reported-by: Harry Sintonen |
| 5433 | Closes #9049 |
| 5434 | |
| 5435 | - krb5: return error properly on decode errors |
| 5436 | |
| 5437 | Bug: https://curl.se/docs/CVE-2022-32208.html |
| 5438 | CVE-2022-32208 |
| 5439 | Reported-by: Harry Sintonen |
| 5440 | Closes #9051 |
| 5441 | |
| 5442 | - easy_lock.h: remove use of the deprecated ATOMIC_VAR_INIT macro |
| 5443 | |
| 5444 | clang 14 warns about its use. It is being deprecated by the working |
| 5445 | group for the programming language C: "The macro ATOMIC_VAR_INIT is |
| 5446 | basically useless for the purpose for which it was designed" |
| 5447 | |
| 5448 | Ref: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2886.htm |
| 5449 | |
| 5450 | Reported-by: Tatsuhiro Tsujikawa |
| 5451 | Fixes #9041 |
| 5452 | Closes #9042 |
| 5453 | |
| 5454 | - [Stefan Eissing brought this change] |
| 5455 | |
| 5456 | ngtcp2: avoid supplying 0 length `msg_control` to sendmsg() |
| 5457 | |
| 5458 | Testing on macOS 12.4, sendmsg() fails with EINVAL when a msg_control |
| 5459 | buffer is provided in sengmsg(), even though msg_controllen was set to |
| 5460 | 0. |
| 5461 | |
| 5462 | Initialize msg.msg_controllen just as needed and also perform the size |
| 5463 | assertion only when needed. |
| 5464 | |
| 5465 | Closes #9039 |
| 5466 | |
| 5467 | - [Tom Eccles brought this change] |
| 5468 | |
| 5469 | ftp: restore protocol state after http proxy CONNECT |
| 5470 | |
| 5471 | connect_init() (lib/http_proxy.c) swaps out the protocol state while |
| 5472 | working on the proxy connection, this is then restored by |
| 5473 | Curl_connect_done() after the connection completes. |
| 5474 | |
| 5475 | ftp_do_more() extracted the protocol state pointer to a local variable |
| 5476 | at the start of the function then calls Curl_proxy_connect(). If the proxy |
| 5477 | connection completes, Curl_proxy_connect() will call Curl_connect_done() |
| 5478 | (via Curl_proxyCONNECT()), which restores data->req.p to point to the ftp |
| 5479 | protocol state instead of the http proxy protocol state, but the local |
| 5480 | variable in ftp_do_more still pointed to the old value. |
| 5481 | |
| 5482 | Ultimately this meant that the state worked on by ftp_do_more() was the |
| 5483 | http proxy state not the ftp state initialised by ftp_connect(), but |
| 5484 | subsequent calls to any ftp_ function would use the original state. |
| 5485 | |
| 5486 | For my use-case, the visible consequence was that ftp->downloadsize was |
| 5487 | never set and so downloaded data was never returned to the application. |
| 5488 | |
| 5489 | This commit updates the ftp protocol state pointer in ftp_do_more() after |
| 5490 | Curl_proxy_connect() returns, ensuring that the correct state pointer is |
| 5491 | used. |
| 5492 | |
| 5493 | Fixes #8737 |
| 5494 | Closes #9043 |
| 5495 | |
| 5496 | Jay Satiro (23 Jun 2022) |
| 5497 | - THANKS: add contributor missing from aea8ac1 |
| 5498 | |
| 5499 | aea8ac1 fixed #8980 which was reported by Sgharat on github, but that |
| 5500 | info was not included in the commit message. |
| 5501 | |
| 5502 | - curl_setup: include _mingw.h |
| 5503 | |
| 5504 | Prior to this change _mingw.h needed to be included in each unit before |
| 5505 | evaluating __MINGW{32,64}_xxx_VERSION macros since it defines them. It |
| 5506 | is included only in some mingw headers (eg stdio.h) and not others |
| 5507 | (eg windows.h) so it's better to explicitly include it once. |
| 5508 | |
| 5509 | Closes https://github.com/curl/curl/pull/9036 |
| 5510 | |
| 5511 | Viktor Szakats (22 Jun 2022) |
| 5512 | - rand: stop detecting /dev/urandom in cross-builds |
| 5513 | |
| 5514 | - Prevent CMake to auto-detect /dev/urandom when cross-building. |
| 5515 | Before this patch, it would detect it in a cross-build scenario on *nix |
| 5516 | hosts with this device present. This was a problem for example with |
| 5517 | Windows builds, but it could affect any target system with this device |
| 5518 | missing. This also syncs detection behaviour with autotools, which also |
| 5519 | skips it for cross-builds. |
| 5520 | - Also, make sure to never use the file RANDOM_FILE as entropy for libcurl's |
| 5521 | fallback random number generator on Windows. Windows does not have the |
| 5522 | concept of reading a random stream from a filename, nor any guaranteed |
| 5523 | non-world-writable path on disk. With this, a manual misconfiguration or |
| 5524 | an overeager auto-detection can no longer result in a user-controllable |
| 5525 | seed source. |
| 5526 | |
| 5527 | Reviewed-by: Daniel Stenberg |
| 5528 | Closes #9038 |
| 5529 | |
| 5530 | Daniel Stenberg (22 Jun 2022) |
| 5531 | - [Emanuele Torre brought this change] |
| 5532 | |
| 5533 | ci: avoid `cmake -Hpath` |
| 5534 | |
| 5535 | This is an undocumented option similar to the `-Spath' option introduced |
| 5536 | in cmake 3.13. |
| 5537 | Replace all instances of `-Hpath' with `-Spath' in macos workflow. |
| 5538 | Replace `-H. -Bpath' with `mkdir path; cd ./path; cmake ..' in zuul |
| 5539 | scripts since it runs an older version of cmake. |
| 5540 | |
| 5541 | Fixes #9008 |
| 5542 | Closes #9014 |
| 5543 | |
| 5544 | - INTERNALS: bring back the "Library symbols" section |
| 5545 | |
| 5546 | Most contents was moved, but this text should remain here. |
| 5547 | |
| 5548 | Follow-up to: d324ac8 |
| 5549 | Reported-by: Viktor Szakats |
| 5550 | Bug: https://github.com/curl/curl/pull/9027#discussion_r903382326 |
| 5551 | Closes #9037 |
| 5552 | |
| 5553 | Viktor Szakats (22 Jun 2022) |
| 5554 | - Makefile.m32: stop forcing XP target with ipv6 enabled [ci skip] |
| 5555 | |
| 5556 | Since this [1] commit in 2011, `_WIN32_WINNT` was set fixed to Windows |
| 5557 | XP when the `-ipv6` option is selected. Maybe this was added to support |
| 5558 | pre-XP Windows versions (?). These days libcurl builds fine for both XP |
| 5559 | and post-XP versions with IPv6 support enabled. The relevance of pre-XP |
| 5560 | version is also low by now. Other build methods also do not impose such |
| 5561 | limitation for a similar configuration. So, drop this hard-wired |
| 5562 | `_WIN32_WINNT` limit from `Makefile.m32`, thus building for the default |
| 5563 | Windows version set by the compiler. This is Vista for recent MinGW |
| 5564 | versions. |
| 5565 | |
| 5566 | Old behaviour can be restored by setting this envvar: |
| 5567 | export CURL_CFLAG_EXTRAS=-D_WIN32_WINNT=0x0501 |
| 5568 | |
| 5569 | [1] 98a61d8e2e8982786aaf3916cbbcac96838316e7 |
| 5570 | |
| 5571 | Closes #9035 |
| 5572 | |
| 5573 | Daniel Stenberg (21 Jun 2022) |
| 5574 | - CONTRIBUTE: mention how we maintain REUSE compliance |
| 5575 | |
| 5576 | for copyright and license information of all files stored in git |
| 5577 | |
| 5578 | Closes #9032 |
| 5579 | |
| 5580 | - CURLOPT_ALTSVC.3: document the file format |
| 5581 | |
| 5582 | Closes #9033 |
| 5583 | |
| 5584 | Jay Satiro (21 Jun 2022) |
| 5585 | - runtests: add "threadsafe" to detected features |
| 5586 | |
| 5587 | Follow-up to recent commits which added thread-safety support. |
| 5588 | |
| 5589 | Bug: https://github.com/curl/curl/pull/9012#discussion_r902018782 |
| 5590 | Reported-by: Marc Hƶrsken |
| 5591 | |
| 5592 | Closes https://github.com/curl/curl/pull/9030 |
| 5593 | |
| 5594 | Daniel Stenberg (20 Jun 2022) |
| 5595 | - easy: remove dead code |
| 5596 | |
| 5597 | Follow-up from 5912da253b64d |
| 5598 | |
| 5599 | Detected by Coverity (CID 1506519) |
| 5600 | |
| 5601 | Closes #9029 |
| 5602 | |
| 5603 | - [Glenn Strauss brought this change] |
| 5604 | |
| 5605 | transfer: upload performance; avoid tiny send |
| 5606 | |
| 5607 | Append to the upload buffer when only small amount remains in buffer |
| 5608 | rather than performing a separate tiny send to empty buffer. |
| 5609 | |
| 5610 | Avoid degenerative upload behavior which might cause curl to send mostly |
| 5611 | 1-byte DATA frames after exhausing the h2 send window size |
| 5612 | |
| 5613 | Related discussion: https://github.com/nghttp2/nghttp2/issues/1722 |
| 5614 | |
| 5615 | Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com> |
| 5616 | Closes #8965 |
| 5617 | |
| 5618 | - [Steve Holme brought this change] |
| 5619 | |
| 5620 | projects: fix third-party SSL library build paths for Visual Studio |
| 5621 | |
| 5622 | The paths used by the build batch files were inconsistent with those in |
| 5623 | the Visual Studio project files. |
| 5624 | |
| 5625 | Closes #8991 |
| 5626 | |
| 5627 | - [Pierrick Charron brought this change] |
| 5628 | |
| 5629 | urlapi: make curl_url_set(url, CURLUPART_URL, NULL, 0) clear all parts |
| 5630 | |
| 5631 | As per the documentation : |
| 5632 | |
| 5633 | > Setting a part to a NULL pointer will effectively remove that |
| 5634 | > part's contents from the CURLU handle. |
| 5635 | |
| 5636 | But currently clearing CURLUPART_URL does nothing and returns |
| 5637 | CURLUE_OK. This change will clear all parts of the URL at once. |
| 5638 | |
| 5639 | Closes #9028 |
| 5640 | |
| 5641 | - [Philip Heiduck brought this change] |
| 5642 | |
| 5643 | CI: bump FreeBSD 13.0 to 13.1 |
| 5644 | |
| 5645 | Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> |
| 5646 | Closes #8815 |
| 5647 | |
| 5648 | - RELEASE-NOTES: synced |
| 5649 | |
| 5650 | and updated release date in RELEASE-PROCEDURE.md |
| 5651 | |
| 5652 | - [divinity76 brought this change] |
| 5653 | |
| 5654 | CURLOPT_HTTPHEADER.3: improve comment in example |
| 5655 | |
| 5656 | Closes #9025 |
| 5657 | |
| 5658 | Marc Hoersken (16 Jun 2022) |
| 5659 | - CI/azure: reduce flakiness by retrying install/prepare steps |
| 5660 | |
| 5661 | Closes #9010 |
| 5662 | |
| 5663 | - CI/cirrus: align Windows timeout with Azure CI at 120 minutes |
| 5664 | |
| 5665 | Closes #9009 |
| 5666 | |
| 5667 | Jay Satiro (16 Jun 2022) |
| 5668 | - vtls: make curl_global_sslset thread-safe |
| 5669 | |
| 5670 | .. and update some docs to explain curl_global_* is now thread-safe. |
| 5671 | |
| 5672 | Follow-up to 23af112 which made curl_global_init/cleanup thread-safe. |
| 5673 | |
| 5674 | Closes https://github.com/curl/curl/pull/9016 |
| 5675 | |
| 5676 | - curl_easy_pause.3: remove explanation of progress function |
| 5677 | |
| 5678 | - Remove misleading text that says progress function "gets called at |
| 5679 | least once per second, even if the connection is paused." |
| 5680 | |
| 5681 | The progress function behavior is more nuanced and the user is better |
| 5682 | served reading the progress function doc rather than attempt to explain |
| 5683 | it in the curl_easy_pause doc. |
| 5684 | |
| 5685 | The progress function can only be called at least once per second if an |
| 5686 | appropriate multi transfer function is called (eg curl_multi_perform) in |
| 5687 | that time. For a paused transfer there may not be such a call. Rather |
| 5688 | than explain this in detail in the curl_easy_pause doc, rely on the user |
| 5689 | reading the CURLOPT_PROGRESSFUNCTION doc. |
| 5690 | |
| 5691 | Ref: https://github.com/curl/curl/issues/8983 |
| 5692 | |
| 5693 | Closes https://github.com/curl/curl/pull/9015 |
| 5694 | |
| 5695 | Daniel Stenberg (15 Jun 2022) |
| 5696 | - libssh: skip the fake-close when libssh does the right thing |
| 5697 | |
| 5698 | Starting in libssh 0.10.0 ssh_disconnect() will no longer close our |
| 5699 | socket. Instead it will be kept alive as we want it, and it is our |
| 5700 | responsibility to close it later. |
| 5701 | |
| 5702 | Ref: #8718 |
| 5703 | Ref: https://gitlab.com/libssh/libssh-mirror/-/merge_requests/240 |
| 5704 | Closes #9021 |
| 5705 | |
| 5706 | - configure: warn about rustls being experimental |
| 5707 | |
| 5708 | Right now a dozen test cases are disabled because they don't work with |
| 5709 | rustls. |
| 5710 | |
| 5711 | Closes #9019 |
| 5712 | |
| 5713 | - runtests: skip starting the ssh server if user name is lacking |
| 5714 | |
| 5715 | Because the ssh server startup script *requires* a user name there's no |
| 5716 | point in invoking it if no name was found. |
| 5717 | |
| 5718 | Reported-by: Ricardo M. Correia |
| 5719 | Ref: #9007 |
| 5720 | Closes #9013 |
| 5721 | |
| 5722 | - copyright.pl: parse and use .reuse/dep5 for skips |
| 5723 | |
| 5724 | Also scan skipped files to be able to find superfluous ignores, shown with -v. |
| 5725 | |
| 5726 | Closes #9006 |
| 5727 | |
| 5728 | - reuse/dep5: adjusted to parse better |
| 5729 | |
| 5730 | ... adjusted a few files to contain copyright and license info. |
| 5731 | |
| 5732 | Closes #9006 |
| 5733 | |
| 5734 | - buildconf.bat: update copyright year range |
| 5735 | |
| 5736 | Closes #9006 |
| 5737 | |
| 5738 | - README.md: use the common "Copyright" style formatting |
| 5739 | |
| 5740 | Closes #9006 |
| 5741 | |
| 5742 | - reuse: move license info from .mailmap.license to .reuse/dep5 |
| 5743 | |
| 5744 | Closes #9006 |
| 5745 | |
| 5746 | - README.md: add a REUSE badge |
| 5747 | |
| 5748 | Closes #9004 |
| 5749 | |
| 5750 | - .reuse/dep5: remove recursive docs ignore, only skip markdown files |
| 5751 | |
| 5752 | ... and some additional non-markdown individual files in docs/ |
| 5753 | |
| 5754 | Closes #9005 |
| 5755 | |
| 5756 | - docs/cmdline-opts: add copyright and license identifier to each file |
| 5757 | |
| 5758 | gen.pl now insists on C: and SPDX-License-Identifier: fields to be |
| 5759 | present in all files. |
| 5760 | |
| 5761 | Closes #9002 |
| 5762 | |
| 5763 | - copyright: info for/ignore .github/ISSUE_TEMPLATE/bug_report.md |
| 5764 | |
| 5765 | Follow-up from 448f7ef9ab2afb7. The adding of the copyright text in that |
| 5766 | file broke site functionality. |
| 5767 | |
| 5768 | Closes #9001 |
| 5769 | |
| 5770 | - bug_report.md: revert the REUSE template to see if it works again |
| 5771 | |
| 5772 | Viktor Szakats (13 Jun 2022) |
| 5773 | - version: rename threadsafe-init to threadsafe |
| 5774 | |
| 5775 | Referring to Daniel's article [1], making the init function thread-safe |
| 5776 | was the last bit to make libcurl thread-safe as a whole. So the name of |
| 5777 | the feature may as well be the more concise 'threadsafe', also telling |
| 5778 | the story that libcurl is now fully thread-safe, not just its init |
| 5779 | function. Chances are high that libcurl wants to remain so in the |
| 5780 | future, so there is little likelihood of ever needing any other distinct |
| 5781 | `threadsafe-<name>` feature flags. |
| 5782 | |
| 5783 | For consistency we also shorten `CURL_VERSION_THREADSAFE_INIT` to |
| 5784 | `CURL_VERSION_THREADSAFE`, update its description and reference libcurl's |
| 5785 | thread safety documentation. |
| 5786 | |
| 5787 | [1]: https://daniel.haxx.se/blog/2022/06/08/making-libcurl-init-more-thread-safe/ |
| 5788 | |
| 5789 | Reviewed-by: Daniel Stenberg |
| 5790 | Reviewed-by: Jay Satiro |
| 5791 | Closes #8989 |
| 5792 | |
| 5793 | Daniel Stenberg (13 Jun 2022) |
| 5794 | - test3026: disable on win32 |
| 5795 | |
| 5796 | ... as it's not likely to have working pthreads |
| 5797 | |
| 5798 | Closes #8996 |
| 5799 | |
| 5800 | - GHA: shorten the reuse CI job name |
| 5801 | |
| 5802 | "REUSE compliance / check" should be good enough |
| 5803 | |
| 5804 | Closes #9000 |
| 5805 | |
| 5806 | - misc: add missing SPDX-License-Identifier info |
| 5807 | |
| 5808 | For some reason the REUSE CI job did not find these. |
| 5809 | |
| 5810 | Closes #8999 |
| 5811 | |
| 5812 | - copyright: verify SPDX-License-Identifier presence as well |
| 5813 | |
| 5814 | - easy_lock: add SPDX license identifier |
| 5815 | |
| 5816 | Closes #8998 |
| 5817 | |
| 5818 | - mailmap: Max Mehl |
| 5819 | |
| 5820 | - [Max Mehl brought this change] |
| 5821 | |
| 5822 | git: ignore large commit making the curl REUSE compliant |
| 5823 | |
| 5824 | - [Max Mehl brought this change] |
| 5825 | |
| 5826 | copyright: make repository REUSE compliant |
| 5827 | |
| 5828 | Add licensing and copyright information for all files in this repository. This |
| 5829 | either happens in the file itself as a comment header or in the file |
| 5830 | `.reuse/dep5`. |
| 5831 | |
| 5832 | This commit also adds a Github workflow to check pull requests and adapts |
| 5833 | copyright.pl to the changes. |
| 5834 | |
| 5835 | Closes #8869 |
| 5836 | |
| 5837 | - curl_url_set.3: clarify by default using known schemes only |
| 5838 | |
| 5839 | Closes #8994 |
| 5840 | |
| 5841 | - scripts/copyright.pl: ignore leading spaces |
| 5842 | |
| 5843 | Viktor Szakats (10 Jun 2022) |
| 5844 | - ngtcp2: fix typo in preprocessor condition |
| 5845 | |
| 5846 | Ref: 927ede7edcb7b05b8e8bbf9ced6aed523ae594a7 |
| 5847 | |
| 5848 | Bug: https://github.com/curl/curl/pull/8981#discussion_r894312185 |
| 5849 | Reported-by: Emil Engler |
| 5850 | Closes #8987 |
| 5851 | |
| 5852 | Daniel Stenberg (10 Jun 2022) |
| 5853 | - RELEASE-NOTES: synced |
| 5854 | |
| 5855 | - [Tatsuhiro Tsujikawa brought this change] |
| 5856 | |
| 5857 | ngtcp2: build without sendmsg |
| 5858 | |
| 5859 | Closes #8981 |
| 5860 | |
| 5861 | - [Tatsuhiro Tsujikawa brought this change] |
| 5862 | |
| 5863 | ngtcp2: use handshake helper funcs to simplify TLS handshake integration |
| 5864 | |
| 5865 | Closes #8968 |
| 5866 | |
| 5867 | - test390: verify --parallel |
| 5868 | |
| 5869 | Closes #8985 |
| 5870 | |
| 5871 | - test1543: verify CURLINFO_EFFECTIVE_URL with CURLOPT_CURLU set |
| 5872 | |
| 5873 | Triggered by a bug report from Adam Light: |
| 5874 | https://curl.se/mail/lib-2022-06/0013.html - which ended up being mostly |
| 5875 | a misunderstanding of how CURLINFO_EFFECTIVE_URL works. |
| 5876 | |
| 5877 | Closes #8971 |
| 5878 | |
| 5879 | - url: URL encode the path when extracted, if spaces were set |
| 5880 | |
| 5881 | - urlapi: support CURLU_URLENCODE for curl_url_get() |
| 5882 | |
| 5883 | - server/sws: support spaces in the HTTP request path |
| 5884 | |
| 5885 | - tests/getpart: fix getpartattr to work with "data" and "data2" |
| 5886 | |
| 5887 | - select: return error from "lethal" poll/select errors |
| 5888 | |
| 5889 | Adds two new error codes: CURLE_UNRECOVERABLE_POLL and |
| 5890 | CURLM_UNRECOVERABLE_POLL one each for the easy and the multi interfaces. |
| 5891 | |
| 5892 | Reported-by: Harry Sintonen |
| 5893 | Fixes #8921 |
| 5894 | Closes #8961 |
| 5895 | |
| 5896 | - test3026: add missing control file |
| 5897 | |
| 5898 | Follow-up from 2ed101256414ea5 |
| 5899 | |
| 5900 | Makes the test run, makes 'make dist' work |
| 5901 | |
| 5902 | This single test takes 24-25 seconds on my machine (with valgrind). For |
| 5903 | this reason I tag it with a "slow" keyword. |
| 5904 | |
| 5905 | Closes #8976 |
| 5906 | |
| 5907 | - runtests: fix skipping tests not done event-based |
| 5908 | |
| 5909 | ... and call timestampskippedevents() to avoid the flood of |
| 5910 | uninitialized variable warnings. |
| 5911 | |
| 5912 | Closes #8977 |
| 5913 | |
| 5914 | - transfer: maintain --path-as-is after redirects |
| 5915 | |
| 5916 | Reported-by: Marcus T |
| 5917 | Fixes #8974 |
| 5918 | Closes #8975 |
| 5919 | |
| 5920 | - test391: verify --path-as-is with redirect |
| 5921 | |
| 5922 | Jay Satiro (8 Jun 2022) |
| 5923 | - curl_global_init.3: Separate the Windows loader lock warning |
| 5924 | |
| 5925 | This is a slight correction of the parent commit which implied the |
| 5926 | loader lock warning only applied if not thread-safe. In fact the loader |
| 5927 | lock warning applies either way. |
| 5928 | |
| 5929 | Ref: https://github.com/curl/curl/pull/8972#discussion_r891987030 |
| 5930 | |
| 5931 | Daniel Stenberg (8 Jun 2022) |
| 5932 | - curl_global_init.3: this is now (usually) thread-safe |
| 5933 | |
| 5934 | Follow-up to 23af112f5556 |
| 5935 | |
| 5936 | Closes #8972 |
| 5937 | |
| 5938 | Jay Satiro (8 Jun 2022) |
| 5939 | - [Haxatron brought this change] |
| 5940 | |
| 5941 | libcurl-security.3: Document CRLF header injection |
| 5942 | |
| 5943 | - Document that user input to header options is not sanitized, which |
| 5944 | could result in CRLF used to modify the request in a way other than |
| 5945 | what was intended. |
| 5946 | |
| 5947 | Ref: https://hackerone.com/reports/1589877 |
| 5948 | Ref: https://medium.com/@tomnomnom/crlf-injection-into-phps-curl-options-e2e0d7cfe545 |
| 5949 | |
| 5950 | Closes https://github.com/curl/curl/pull/8964 |
| 5951 | |
| 5952 | - CURLOPT_RANGE.3: remove ranged upload advice |
| 5953 | |
| 5954 | The e-mail link in the advice contains instructions that are prone to |
| 5955 | error. We need an example that works and can demonstrate how to properly |
| 5956 | perform a ranged upload, and then we can refer to that example instead. |
| 5957 | |
| 5958 | Bug: https://github.com/curl/curl/issues/8969 |
| 5959 | Reported-by: Simon Berger |
| 5960 | |
| 5961 | Closes https://github.com/curl/curl/pull/8970 |
| 5962 | |
| 5963 | Daniel Stenberg (7 Jun 2022) |
| 5964 | - [Thomas Guillem brought this change] |
| 5965 | |
| 5966 | curl_version_info: add CURL_VERSION_THREADSAFE_INIT |
| 5967 | |
| 5968 | This flag can be used to make sure that curl_global_init() is |
| 5969 | thread-safe. |
| 5970 | |
| 5971 | This can be useful for libraries that can't control what other |
| 5972 | dependencies are doing with Curl. |
| 5973 | |
| 5974 | Closes #8680 |
| 5975 | |
| 5976 | - [Thomas Guillem brought this change] |
| 5977 | |
| 5978 | lib: make curl_global_init() threadsafe when possible |
| 5979 | |
| 5980 | Use a posix pthread or a Windows SRWLOCK to lock curl_global_init*() and |
| 5981 | curl_global_cleanup(). |
| 5982 | |
| 5983 | Closes #8680 |
| 5984 | |
| 5985 | - RELEASE-NOTES: synced |
| 5986 | |
| 5987 | - [Fabian Keil brought this change] |
| 5988 | |
| 5989 | test414: add the '--resolve' keyword |
| 5990 | |
| 5991 | ... so the test can be automatically skipped when |
| 5992 | using an external proxy like Privoxy. |
| 5993 | |
| 5994 | Closes #8959 |
| 5995 | |
| 5996 | - [Fabian Keil brought this change] |
| 5997 | |
| 5998 | test{440,441,493,977}: add "HTTP proxy" keywords |
| 5999 | |
| 6000 | ... so the tests can be automatically skipped when |
| 6001 | using an external proxy like Privoxy. |
| 6002 | |
| 6003 | Closes #8959 |
| 6004 | |
| 6005 | - [Fabian Keil brought this change] |
| 6006 | |
| 6007 | runtests.pl: add the --repeat parameter to the --help output |
| 6008 | |
| 6009 | Closes #8959 |
| 6010 | |
| 6011 | - [Fabian Keil brought this change] |
| 6012 | |
| 6013 | test 2081: add a valid reply for the second request |
| 6014 | |
| 6015 | ... so the test works when using a HTTP proxy like |
| 6016 | Privoxy that sends an error message if the server |
| 6017 | doesn't send data. |
| 6018 | |
| 6019 | Closes #8959 |
| 6020 | |
| 6021 | - [Fabian Keil brought this change] |
| 6022 | |
| 6023 | test 675: add missing CR so the test passes when run through Privoxy |
| 6024 | |
| 6025 | Closes #8959 |
| 6026 | |
| 6027 | - ftp: when failing to do a secure GSSAPI login, fail hard |
| 6028 | |
| 6029 | ... instead of switching to cleartext. For the sake of security. |
| 6030 | |
| 6031 | Reported-by: Harry Sintonen |
| 6032 | Bug: https://hackerone.com/reports/1590102 |
| 6033 | Closes #8963 |
| 6034 | |
| 6035 | - http2: reject overly many push-promise headers |
| 6036 | |
| 6037 | Getting more than a thousand of them is rather a sign of some kind of |
| 6038 | attack. |
| 6039 | |
| 6040 | Reported-by: Harry Sintonen |
| 6041 | Bug: https://hackerone.com/reports/1589847 |
| 6042 | Closes #8962 |
| 6043 | |
| 6044 | - [Fabian Keil brought this change] |
| 6045 | |
| 6046 | misc: spelling improvements |
| 6047 | |
| 6048 | Closes #8956 |
| 6049 | |
| 6050 | - [Tatsuhiro Tsujikawa brought this change] |
| 6051 | |
| 6052 | ngtcp2: fix assertion failure on EMSGSIZE |
| 6053 | |
| 6054 | Closes #8958 |
| 6055 | |
| 6056 | - easy/transfer: fix cookie-disabled build |
| 6057 | |
| 6058 | Follow-up from 45de940cebf6a |
| 6059 | Reported-by: Marcel Raad |
| 6060 | Fixes #8953 |
| 6061 | Closes #8954 |
| 6062 | |
| 6063 | - examples/crawler.c: use the curl license |
| 6064 | |
| 6065 | With permission from Jeroen Ooms |
| 6066 | |
| 6067 | URL: https://github.com/curl/curl/pull/8869#issuecomment-1144742731 |
| 6068 | Closes #8950 |
| 6069 | |
| 6070 | - speed-limit/time.d: mention these affect transfers in either direction |
| 6071 | |
| 6072 | Reported-by: Ladar Levison |
| 6073 | Fixes #8948 |
| 6074 | Closes #8951 |
| 6075 | |
| 6076 | - scripts/copyright.pl: fix the exclusion to not ignore man pages |
| 6077 | |
| 6078 | Ref: #8869 |
| 6079 | Closes #8952 |
| 6080 | |
| 6081 | - examples: remove fopen.c and rtsp.c |
| 6082 | |
| 6083 | To simplify the license situation, as they were the only files in the |
| 6084 | source tree using these specific BSD-3 clause licenses. |
| 6085 | |
| 6086 | For an fopen style API, we recommend instead going |
| 6087 | https://github.com/curl/fcurl |
| 6088 | |
| 6089 | Ref: #8869 |
| 6090 | Closes #8949 |
| 6091 | |
| 6092 | - [Wolf Vollprecht brought this change] |
| 6093 | |
| 6094 | netrc: check %USERPROFILE% as well on Windows |
| 6095 | |
| 6096 | Closes #8855 |
| 6097 | |
| 6098 | - CURLOPT_SSH_HOSTKEYDATA/FUNCTION.3: minor polish |
| 6099 | |
| 6100 | - [michael musset brought this change] |
| 6101 | |
| 6102 | libssh2: add CURLOPT_SSH_HOSTKEYFUNCTION |
| 6103 | |
| 6104 | The callback set by CURLOPT_SSH_HOSTKEYFUNCTION is called to check |
| 6105 | wether or not the connection should continue. |
| 6106 | |
| 6107 | The host key is passed in argument with a custom handle for the |
| 6108 | application. |
| 6109 | |
| 6110 | It overrides CURLOPT_SSH_KNOWNHOSTS |
| 6111 | |
| 6112 | Closes #7959 |
| 6113 | |
| 6114 | - docs/CONTRIBUTE.md: document the 'needs-votes' concept |
| 6115 | |
| 6116 | A pull request sent to the project might get labeled `needs-votes` by a |
| 6117 | project maintainer. This label means that in addition to meeting all |
| 6118 | other checks and qualifications this pull request must also receive |
| 6119 | proven support/thumbs-ups from more community members to be considered |
| 6120 | for merging. |
| 6121 | |
| 6122 | Closes #8910 |
| 6123 | |
| 6124 | - [Evgeny Grin (Karlson2k) brought this change] |
| 6125 | |
| 6126 | digest: tolerate missing "realm" |
| 6127 | |
| 6128 | Server headers may not define "realm", avoid NULL pointer dereference |
| 6129 | in such cases. |
| 6130 | |
| 6131 | Closes #8912 |
| 6132 | |
| 6133 | - [Evgeny Grin (Karlson2k) brought this change] |
| 6134 | |
| 6135 | digest: added detection of more syntax error in server headers |
| 6136 | |
| 6137 | Invalid headers should not be processed otherwise they may create |
| 6138 | a security risk. |
| 6139 | |
| 6140 | Closes #8912 |
| 6141 | |
| 6142 | - [Evgeny Grin (Karlson2k) brought this change] |
| 6143 | |
| 6144 | digest: unquote realm and nonce before processing |
| 6145 | |
| 6146 | RFC 7616 (and 2617) requires values to be "unquoted" before used for |
| 6147 | digest calculations. The only place where unquoting can be done |
| 6148 | correctly is header parsing function (realm="DOMAIN\\host" and |
| 6149 | realm=DOMAN\\host are different realms). |
| 6150 | |
| 6151 | This commit adds unquoting (de-escaping) of all values during header |
| 6152 | parsing and quoting of the values during header forming. This approach |
| 6153 | should be most straightforward and easy to read/maintain as all values |
| 6154 | are processed in the same way as required by RFC. |
| 6155 | |
| 6156 | Closes #8912 |
| 6157 | |
| 6158 | - headers: handle unfold of space-cleansed headers |
| 6159 | |
| 6160 | Detected by OSS-fuzz |
| 6161 | |
| 6162 | Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47767 |
| 6163 | |
| 6164 | Updated test 1274 |
| 6165 | |
| 6166 | Closes #8947 |
| 6167 | |
| 6168 | - lib: make more protocol specific struct fields #ifdefed |
| 6169 | |
| 6170 | ... so that they don't take up space if the protocols are disabled in |
| 6171 | the build. |
| 6172 | |
| 6173 | Closes #8944 |
| 6174 | |
| 6175 | - DISABLED: disable 1021 for hyper again |
| 6176 | |
| 6177 | due to flakiness in the CI builds |
| 6178 | |
| 6179 | - urldata: store tcp_keepidle and tcp_keepintvl as ints |
| 6180 | |
| 6181 | They can't be set larger than INT_MAX in the setsocket API calls. |
| 6182 | |
| 6183 | Also document the max values in their respective man pages. |
| 6184 | |
| 6185 | Closes #8940 |
| 6186 | |
| 6187 | - urldata: reduce size of a few struct fields |
| 6188 | |
| 6189 | When the values are never larger than 32 bit, ints are better than longs. |
| 6190 | |
| 6191 | Closes #8940 |
| 6192 | |
| 6193 | - urldata: remove three unused booleans from struct UserDefined |
| 6194 | |
| 6195 | - is_fwrite_set |
| 6196 | - free_referer |
| 6197 | - strip_path_slash |
| 6198 | |
| 6199 | Closes #8940 |
| 6200 | |
| 6201 | - remote-name.d: mention --output-dir |
| 6202 | |
| 6203 | plus add two see-alsos |
| 6204 | |
| 6205 | Closes #8945 |
| 6206 | |
| 6207 | Jay Satiro (1 Jun 2022) |
| 6208 | - configure: skip libidn2 detection when winidn is used |
| 6209 | |
| 6210 | Prior to this change --with-winidn could be overridden by libidn2 |
| 6211 | detection. |
| 6212 | |
| 6213 | Closes https://github.com/curl/curl/pull/8934 |
| 6214 | |
| 6215 | Daniel Stenberg (31 May 2022) |
| 6216 | - CURLOPT_FILETIME.3: fix the protocols this works with |
| 6217 | |
| 6218 | - test681: verify --no-remote-name |
| 6219 | |
| 6220 | Follow-up to 83ee5c428d960 (from #8931) |
| 6221 | |
| 6222 | Closes #8942 |
| 6223 | |
| 6224 | - [Tatsuhiro Tsujikawa brought this change] |
| 6225 | |
| 6226 | ngtcp2: enable Linux GSO |
| 6227 | |
| 6228 | Enable Linux GSO in ngtcp2 QUIC. In order to recover from the |
| 6229 | EAGAIN/EWOULDBLOCK by sendmsg with multiple packets in one GSO write, |
| 6230 | packet buffer is now held by struct quicsocket. GSO write might fail in |
| 6231 | runtime depending on NIC. Disable GSO if sendmsg returns EIO. |
| 6232 | |
| 6233 | Closes #8909 |
| 6234 | |
| 6235 | - CURLOPT_PORT.3: We discourage using this option |
| 6236 | |
| 6237 | Closes #8941 |
| 6238 | |
| 6239 | - RELEASE-NOTES: synced |
| 6240 | |
| 6241 | - headers_push: error out if a folded header has no previous header |
| 6242 | |
| 6243 | As that would indicate an illegal header. The fuzzer reached the assert |
| 6244 | in unfold_value() proving that this case can happen. |
| 6245 | |
| 6246 | Follow-up to c9b60f005358a364 |
| 6247 | |
| 6248 | Closes #8939 |
| 6249 | |
| 6250 | - [Boris Verkhovskiy brought this change] |
| 6251 | |
| 6252 | curl: re-enable --no-remote-name |
| 6253 | |
| 6254 | Closes #8931 |
| 6255 | |
| 6256 | - test680: require 'http' since it uses such a URL |
| 6257 | |
| 6258 | Follow-up to d1b376c03524 |
| 6259 | |
| 6260 | - CURLOPT_NETRC.3: document the .netrc file format |
| 6261 | |
| 6262 | - test680: verify rejection of malformatted .netrc quoted password |
| 6263 | |
| 6264 | - test679: verify netrc quoted string |
| 6265 | |
| 6266 | - netrc: support quoted strings |
| 6267 | |
| 6268 | The .netrc parser now accepts strings within double-quotes in order to |
| 6269 | deal with for example passwords containing white space - which |
| 6270 | previously was not possible. |
| 6271 | |
| 6272 | A password that starts with a double-quote also ends with one, and |
| 6273 | double-quotes themselves are escaped with backslashes, like \". It also |
| 6274 | supports \n, \r and \t for newline, carriage return and tabs |
| 6275 | respectively. |
| 6276 | |
| 6277 | If the password does not start with a double quote, it will end at first |
| 6278 | white space and no escaping is performed. |
| 6279 | |
| 6280 | WARNING: this change is not entirely backwards compatible. If anyone |
| 6281 | previously used a double-quote as the first letter of their password, |
| 6282 | the parser will now get it differently compared to before. This is |
| 6283 | highly unfortunate but hard to avoid. |
| 6284 | |
| 6285 | Reported-by: ImpatientHippo on GitHub |
| 6286 | Fixes #8908 |
| 6287 | Closes #8937 |
| 6288 | |
| 6289 | - curl_getdate.3: document that some illegal dates pass through |
| 6290 | |
| 6291 | Closes #8938 |
| 6292 | |
| 6293 | - CI: remove configure --enable-headers-api flags |
| 6294 | |
| 6295 | - headers api: remove EXPERIMENTAL tag |
| 6296 | |
| 6297 | Closes #8900 |
| 6298 | |
| 6299 | Daniel Gustafsson (30 May 2022) |
| 6300 | - cookies: fix documentation comment |
| 6301 | |
| 6302 | Commit 4073cd83b2 added the noexpire parameter to Curl_cookie_add but |
| 6303 | missed updating the documentation comment at the head of the file. |
| 6304 | |
| 6305 | Daniel Stenberg (30 May 2022) |
| 6306 | - [Marc Hoersken brought this change] |
| 6307 | |
| 6308 | tests/data/test1940: use binary mode for expected stdout |
| 6309 | |
| 6310 | The generated stdout data is written in binary mode with [LF] |
| 6311 | line endings, therefore we also need to do a binary comparison. |
| 6312 | |
| 6313 | Assisted-by: Jay Satiro |
| 6314 | Assisted-by: Daniel Stenberg |
| 6315 | |
| 6316 | Follow up to c9b60f005358a364cbcddbebd8d12593acffdd84 |
| 6317 | Fixes #8920 |
| 6318 | Closes #8936 |
| 6319 | |
| 6320 | - CURLINFO_CAINFO/PATH.3: clarify the multiple TLS situation |
| 6321 | |
| 6322 | Spell out the multi-TLS situation. |
| 6323 | |
| 6324 | Reported-by: Dan Fandrich |
| 6325 | Fixes #8926 |
| 6326 | Closes #8932 |
| 6327 | |
| 6328 | Jay Satiro (28 May 2022) |
| 6329 | - [JustAnotherArchivist brought this change] |
| 6330 | |
| 6331 | tool_getparam: fix --parallel-max maximum value constraint |
| 6332 | |
| 6333 | - Clamp --parallel-max to MAX_PARALLEL (300) instead of resetting to |
| 6334 | default value. |
| 6335 | |
| 6336 | Previously, --parallel-max 300 would use 300 concurrent transfers, but |
| 6337 | --parallel-max 301 would unexpectedly use only 50. This change clamps |
| 6338 | higher values to the maximum (ie --parallel-max 301 would use 300). |
| 6339 | |
| 6340 | Closes https://github.com/curl/curl/pull/8930 |
| 6341 | |
| 6342 | Daniel Stenberg (27 May 2022) |
| 6343 | - curl.1: add a few see also --tls-max |
| 6344 | |
| 6345 | Closes #8929 |
| 6346 | |
| 6347 | Viktor Szakats (26 May 2022) |
| 6348 | - cmake: do not add libcurl.rc to the static libcurl library |
| 6349 | |
| 6350 | Fixes: https://github.com/curl/curl/pull/8918#issuecomment-1138263855 |
| 6351 | |
| 6352 | Reviewed-By: Karlson2k@users.noreply.github.com |
| 6353 | Closes #8923 |
| 6354 | |
| 6355 | - cmake: support adding a suffix to the OS value |
| 6356 | |
| 6357 | CMake automatically uses the `CMAKE_SYSTEM_NAME` value to fill the OS |
| 6358 | string appearing in the --version output after the curl version number, |
| 6359 | for example: |
| 6360 | |
| 6361 | 'curl 7.83.1 (Windows)' |
| 6362 | |
| 6363 | This patchs adds the ability to pass a suffix that is appended to this |
| 6364 | value. It's useful to add CPU info or other platform details, |
| 6365 | for example: |
| 6366 | |
| 6367 | 'curl 7.83.1 (Windows-x64)' |
| 6368 | |
| 6369 | Closes #8919 |
| 6370 | |
| 6371 | - cmake: enable curl.rc for all Windows targets |
| 6372 | |
| 6373 | Before this patch, it was only enabled for MSVC. This syncs this |
| 6374 | configuration with libcurl.rc, which was already included with |
| 6375 | every Windows compiler. |
| 6376 | |
| 6377 | Closes #8918 |
| 6378 | |
| 6379 | - cmake: fix detecting libidn2 |
| 6380 | |
| 6381 | Without this patch, libidn2 detection doesn't even seem to be |
| 6382 | attempted. With this patch, cmake can be configured to pick it |
| 6383 | up and enable it. Necessary configuration remains manual and |
| 6384 | differs from most other dependencies. |
| 6385 | |
| 6386 | If you are aware of a better fix, we're glad hearing about it |
| 6387 | in a new Issue. |
| 6388 | |
| 6389 | Closes #8917 |
| 6390 | |
| 6391 | - version: allow stricmp() for sorting the feature list |
| 6392 | |
| 6393 | In CMakeLists.txt there is an attempt to detect `stricmp()`, and in |
| 6394 | certain cases, this attempt is the only successful one to detect a |
| 6395 | case-insensitive comparison function. `HAVE_STRICMP` is defined as |
| 6396 | a result, but this macro wasn't used anywhere in the source. This |
| 6397 | patch makes use of it as an alternative when alpha-sorting the |
| 6398 | `--version` feature list. |
| 6399 | |
| 6400 | Reviewed-by: Daniel Stenberg |
| 6401 | Closes #8916 |
| 6402 | |
| 6403 | Daniel Stenberg (25 May 2022) |
| 6404 | - DISABLED: add six tests that fail with hyper |
| 6405 | |
| 6406 | 1117 1274 1940 1941 1942 1943 |
| 6407 | |
| 6408 | - c-hyper: mark status line as status for Curl_client_write() |
| 6409 | |
| 6410 | To make sure the headers API can filter it out as not a regular header. |
| 6411 | |
| 6412 | Reported-by: Gisle Vanem |
| 6413 | Fixes #8894 |
| 6414 | Closes #8914 |
| 6415 | |
| 6416 | Marc Hoersken (25 May 2022) |
| 6417 | - tests/data/test1501: kill ftp server after slow LIST response |
| 6418 | |
| 6419 | This test is contributing to flakiness on the Windows CI runs. |
| 6420 | Killing the ftp server after the test run like other slowness |
| 6421 | tests already do may help resolve or reduce the flakiness. |
| 6422 | |
| 6423 | Closes #8907 |
| 6424 | |
| 6425 | Daniel Stenberg (25 May 2022) |
| 6426 | - headers: fix the unfold realloc to use proper new size |
| 6427 | |
| 6428 | Previously it didn't take the old name length into acount |
| 6429 | |
| 6430 | Follow-up to: c9b60f005358a364 |
| 6431 | Closes #8913 |
| 6432 | |
| 6433 | Marc Hoersken (25 May 2022) |
| 6434 | - GHA: align all install, configure and build steps again |
| 6435 | |
| 6436 | First step towards more unified build steps on GitHub Actions. |
| 6437 | |
| 6438 | Closes #8873 |
| 6439 | |
| 6440 | - CI/azure: remove obsolete strategy for single builds |
| 6441 | |
| 6442 | This shortens these CI job names on GitHub even more. |
| 6443 | Follow up to #8906 which also increased their timeout. |
| 6444 | |
| 6445 | Closes #8911 |
| 6446 | |
| 6447 | - CI/azure: shorten names of Windows CI jobs |
| 6448 | |
| 6449 | Suggested-by: Daniel Stenberg |
| 6450 | Closes #8906 |
| 6451 | |
| 6452 | Daniel Stenberg (24 May 2022) |
| 6453 | - http: restore header folding behavior |
| 6454 | |
| 6455 | Folded header lines will now get passed through like before. The headers |
| 6456 | API is adapted and will provide the content unfolded. |
| 6457 | |
| 6458 | Added test 1274 and extended test 1940 to verify. |
| 6459 | |
| 6460 | Reported-by: Petr Pisar |
| 6461 | Fixes #8844 |
| 6462 | Closes #8899 |
| 6463 | |
| 6464 | Viktor Szakats (24 May 2022) |
| 6465 | - Makefile.m32: delete obsolete options, improve -On [ci skip] |
| 6466 | |
| 6467 | - `-D_AMD64_` has not been necessary for mingw-w64 builds for a long time now. |
| 6468 | - `-fno-strict-aliasing` is mentioned for Intel C compiler in autotools, and |
| 6469 | I used this with VxWorks in another project, but otherwise this isn't |
| 6470 | necessary anymore as a default. If a target still needs it, it can be |
| 6471 | added with `CURL_CFLAG_EXTRAS=-fno-strict-aliasing` |
| 6472 | - bump up default optimization level to `-O3` (from `-O2`), and also rearrange |
| 6473 | option order so the default can now be overridden via |
| 6474 | `CURL_CFLAG_EXTRAS`. |
| 6475 | - delete `-g` (generate debug info) from `CFLAGS` and `-s` from `LDFLAGS` |
| 6476 | (strip debug info). They were working against each other. Now, if someone |
| 6477 | needs debug info, it can be enabled via `CURL_CFLAG_EXTRAS=-g` |
| 6478 | |
| 6479 | Closes #8904 |
| 6480 | |
| 6481 | Daniel Gustafsson (24 May 2022) |
| 6482 | - ntlm: fix one more hostname test fallout |
| 6483 | |
| 6484 | This fixup was missed in commit 5a41abef6dca19. |
| 6485 | |
| 6486 | Closes: #8901 |
| 6487 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6488 | |
| 6489 | - doh: remove UNITTEST macro definition |
| 6490 | |
| 6491 | The UNITTEST macro is defined by curl_setup.h so there is no use in |
| 6492 | carry a local copy of the logic. |
| 6493 | |
| 6494 | Closes: #8902 |
| 6495 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6496 | |
| 6497 | Daniel Stenberg (24 May 2022) |
| 6498 | - cookie: fix false positive "potentially uninitialized local variable" |
| 6499 | |
| 6500 | Reviewed-by: Daniel Gustafsson |
| 6501 | Closes #8903 |
| 6502 | |
| 6503 | - curl: add --rate to set max request rate per time unit |
| 6504 | |
| 6505 | --rate "12/m" - for 12 per minute or |
| 6506 | --rate "5/h" - for 5 per hour |
| 6507 | |
| 6508 | Removed from TODO |
| 6509 | |
| 6510 | Closes #8671 |
| 6511 | |
| 6512 | - [Jay Satiro brought this change] |
| 6513 | |
| 6514 | max-time.d: clarify max-time sets max transfer time |
| 6515 | |
| 6516 | Prior to this change the doc said --max-time set the maximum time of the |
| 6517 | 'whole operation' which is not accurate. The option maps to |
| 6518 | CURLOPT_TIMEOUT_MS which sets maximum transfer time. |
| 6519 | |
| 6520 | For example, the maximum time on a transfer is reset if the transfer is |
| 6521 | retried (--retry). |
| 6522 | |
| 6523 | Reported-by: Nuru@users.noreply.github.com |
| 6524 | |
| 6525 | Fixes https://github.com/curl/curl/issues/8877 |
| 6526 | Closes #8879 |
| 6527 | |
| 6528 | - GHA/hyper: enable debug in the build |
| 6529 | |
| 6530 | - hyper: use 'alt-used' |
| 6531 | |
| 6532 | Makes test 412+413 work |
| 6533 | |
| 6534 | Closes #8898 |
| 6535 | |
| 6536 | - RELEASE-NOTES: synced |
| 6537 | |
| 6538 | - CURLINFO_CAPATH/CAINFO: get the default CA paths from libcurl |
| 6539 | |
| 6540 | Closes #8888 |
| 6541 | |
| 6542 | - links: update dead links |
| 6543 | |
| 6544 | The wiki pages are gone, remove and link to more long-living docs. |
| 6545 | |
| 6546 | Closes #8897 |
| 6547 | |
| 6548 | - ntlm: (void) typecast msnprintf() where we ignore return code |
| 6549 | |
| 6550 | Follow-up to 5a41abef6, to please Coverity |
| 6551 | |
| 6552 | Daniel Gustafsson (22 May 2022) |
| 6553 | - ntlm: copy NTLM_HOSTNAME to host buffer |
| 6554 | |
| 6555 | Commit 709ae2454f43 added a fake hostname to avoid leaking the local |
| 6556 | hostname, but omitted copying it to the host buffer. Fix by copying |
| 6557 | and adjust the test fallout. |
| 6558 | |
| 6559 | Closes: #8895 |
| 6560 | Fixes: #8893 |
| 6561 | Reported-by: Patrick Monnerat <patrick@monnerat.net> |
| 6562 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6563 | |
| 6564 | - configure: use the SED value to invoke sed |
| 6565 | |
| 6566 | Rather than assuming sed in PATH, use the resolved $SED variable |
| 6567 | like in all other invocations of sed in configure. |
| 6568 | |
| 6569 | Closes: #8891 |
| 6570 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6571 | Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com> |
| 6572 | |
| 6573 | Daniel Stenberg (20 May 2022) |
| 6574 | - [Tatsuhiro Tsujikawa brought this change] |
| 6575 | |
| 6576 | ngtcp2: Allow curl to send larger UDP datagrams |
| 6577 | |
| 6578 | Allow curl to send larger UDP datagram if Path MTU Discovery finds the |
| 6579 | availability of larger path MTU. To make it work and not to send |
| 6580 | fragmented packet, we need to set DF bit. That makes send(2) fail with |
| 6581 | EMSGSIZE if UDP datagram is too large. In that case, just let it be |
| 6582 | lost. This patch enables DF bit for Linux only. |
| 6583 | |
| 6584 | Closes #8883 |
| 6585 | |
| 6586 | - libcurl-security.3: add "Secrets in memory" |
| 6587 | |
| 6588 | Closes #8881 |
| 6589 | |
| 6590 | - tests: update NTLM tests to use new host name |
| 6591 | |
| 6592 | Also drop the debug requirement, remove the setenv sections, remove |
| 6593 | prechecks and add NTLM to the top keywords. |
| 6594 | |
| 6595 | Closes #8889 |
| 6596 | |
| 6597 | - ntlm: provide a fixed fake host name |
| 6598 | |
| 6599 | The NTLM protocol includes providing the local host name, but apparently |
| 6600 | other implementations already provide a fixed fake name instead to avoid |
| 6601 | leaking the real local name. |
| 6602 | |
| 6603 | The exact name used is 'WORKSTATION', because Firefox uses that. |
| 6604 | |
| 6605 | The change is written to allow someone to "back-pedal" fairly easy in |
| 6606 | case of need. |
| 6607 | |
| 6608 | Reported-by: Carlo Alberto |
| 6609 | Fixes #8859 |
| 6610 | Closes #8889 |
| 6611 | |
| 6612 | Daniel Gustafsson (20 May 2022) |
| 6613 | - KNOWN_BUGS: fix typo in problem description |
| 6614 | |
| 6615 | s/TSL/TLS/ |
| 6616 | |
| 6617 | - FEATURES: remove yassl as TLS library for NTLM |
| 6618 | |
| 6619 | yassl was added in commit 9d904ee41b880b but is no longer available |
| 6620 | and is thus not a library to use for NTLM. This aligns the FEATURES |
| 6621 | doc with the FAQ. |
| 6622 | |
| 6623 | Closes: #8886 |
| 6624 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6625 | |
| 6626 | - FEATURES: reorder footnotes |
| 6627 | |
| 6628 | The empty left-behind footnote confused the website rendering into |
| 6629 | creating a nested emoty list, making the resulting page look quite |
| 6630 | odd. Remove and re-order the remaining ones to avoid a gap in the |
| 6631 | sequence. |
| 6632 | |
| 6633 | Closes: #8886 |
| 6634 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6635 | |
| 6636 | - FAQ: remove opinionated sentence on NTLM |
| 6637 | |
| 6638 | curl is a tool that support many different things, and it doesn't |
| 6639 | really seem like our job to tell other what to use (as they might |
| 6640 | not have much say in the matter even). Also tidy up wording. |
| 6641 | |
| 6642 | Closes: #8886 |
| 6643 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6644 | |
| 6645 | Viktor Szakats (20 May 2022) |
| 6646 | - log2changes: do not indent empty lines [ci skip] |
| 6647 | |
| 6648 | This will omit two spaces of indentation from lines with no content, |
| 6649 | thus avoiding 'spaces @ EOL'. |
| 6650 | |
| 6651 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6652 | Closes #8887 |
| 6653 | |
| 6654 | Daniel Stenberg (19 May 2022) |
| 6655 | - wolfssl: correct the failf() message when a handle can't be made |
| 6656 | |
| 6657 | Closes #8885 |
| 6658 | |
| 6659 | Viktor Szakats (19 May 2022) |
| 6660 | - Makefile.m32: delete two obsolete OpenSSL options [ci skip] |
| 6661 | |
| 6662 | - -DOPENSSL_NO_KRB5: No longer used by OpenSSL 1.1.x, 3.x, or |
| 6663 | LibreSSL 3.5.x, yet it collides with the latter, which defines |
| 6664 | it unconditionally, resulting in this warning: |
| 6665 | ../../libressl/include/openssl/opensslfeatures.h:14:9: warning: 'OPENSSL_NO_KRB5' macro redefined [-Wmacro-redefined] |
| 6666 | It was originally added to curl in 2004. |
| 6667 | |
| 6668 | - -DHAVE_OPENSSL_PKCS12_H: No longer used by OpenSSL 1.1.x, 3.x, or |
| 6669 | LibreSSL back to at least 2.5.5. Originally added in the same |
| 6670 | commit as the above, in 2004. |
| 6671 | |
| 6672 | Closes #8884 |
| 6673 | |
| 6674 | Daniel Stenberg (19 May 2022) |
| 6675 | - RELEASE-NOTES: synced |
| 6676 | |
| 6677 | bump to 7.84.0 |
| 6678 | |
| 6679 | - [Christian Weisgerber via curl-library brought this change] |
| 6680 | |
| 6681 | Makefile.am: fix portability issues |
| 6682 | |
| 6683 | Commit a04f0b961333e1a19848d073d8c7db9c20b2a371 made me notice that |
| 6684 | there is a portability issue in curl's top-level Makefile.am. |
| 6685 | |
| 6686 | $< can only be used in rules that deal with .SUFFIXES. Its use |
| 6687 | for general prerequisites is a GNU make extension. |
| 6688 | |
| 6689 | $< could be replaced by $?, but I think in an autotools context, |
| 6690 | something like this is better: |
| 6691 | |
| 6692 | Bug: https://curl.se/mail/lib-2022-05/0024.html |
| 6693 | Closes #8861 |
| 6694 | |
| 6695 | - [Balakrishnan Balasubramanian brought this change] |
| 6696 | |
| 6697 | socks: support unix sockets for socks proxy |
| 6698 | |
| 6699 | Usage: |
| 6700 | curl -x "socks5h://localhost/run/tor/socks" "https://example.com" |
| 6701 | |
| 6702 | Updated runtests.pl to run a socksd server listening on unix socket |
| 6703 | |
| 6704 | Added tests test1467 test1468 |
| 6705 | |
| 6706 | Added documentation for proxy command line option and socks proxy |
| 6707 | options |
| 6708 | |
| 6709 | Closes #8668 |
| 6710 | |
| 6711 | - [Vincent Torri brought this change] |
| 6712 | |
| 6713 | cmake: add libpsl support |
| 6714 | |
| 6715 | Fixes #8865 |
| 6716 | Closes #8867 |
| 6717 | |
| 6718 | - [Tatsuhiro Tsujikawa brought this change] |
| 6719 | |
| 6720 | ngtcp2: extend QUIC transport parameters buffer |
| 6721 | |
| 6722 | Extend QUIC transport parameters buffer because 64 bytes are too |
| 6723 | short for the ever increasing parameters. |
| 6724 | |
| 6725 | Closes #8872 |
| 6726 | |
| 6727 | - [Tatsuhiro Tsujikawa brought this change] |
| 6728 | |
| 6729 | ngtcp2: handle error from ngtcp2_conn_submit_crypto_data |
| 6730 | |
| 6731 | Closes #8871 |
| 6732 | |
| 6733 | - [Tatsuhiro Tsujikawa brought this change] |
| 6734 | |
| 6735 | ngtcp2: send appropriate connection close error code |
| 6736 | |
| 6737 | Closes #8870 |
| 6738 | |
| 6739 | - test1561: adjusted for the cookie fix |
| 6740 | |
| 6741 | - test414: verify secure cookie domain overlay |
| 6742 | |
| 6743 | - [Harry Sintonen brought this change] |
| 6744 | |
| 6745 | cookie: address secure domain overlay |
| 6746 | |
| 6747 | Bug: https://hackerone.com/reports/1560324 |
| 6748 | Co-authored-by: Daniel Stenberg |
| 6749 | Closes #8840 |
| 6750 | |
| 6751 | - [Frank Gevaerts brought this change] |
| 6752 | |
| 6753 | strcase: some optimisations |
| 6754 | |
| 6755 | Lookup tables for toupper() and tolower() make Curl_strcasecompare() |
| 6756 | about 1.5 times faster. Reorganising Curl_strcasecompare() to fully exit |
| 6757 | early then also allows simplifying the check at the end, for another |
| 6758 | 15%. In total, the changes make Curl_strcasecompare() around 1.6 to 1.7 |
| 6759 | times faster. |
| 6760 | |
| 6761 | Note that these optimisation assume ASCII. The original |
| 6762 | Curl_raw_toupper() and raw_tolower() look like they already made that |
| 6763 | assumption. |
| 6764 | |
| 6765 | Closes #8875 |
| 6766 | |
| 6767 | - BUG-BOUNTY.md: mention the audit exception |
| 6768 | |
| 6769 | Dedicated - paid for - security audits that are performed in |
| 6770 | collaboration with curl developers are not eligible for bounties. |
| 6771 | |
| 6772 | (plus I changed the sub-titles to use ## instead of # in the markdown) |
| 6773 | |
| 6774 | Closes #8880 |
| 6775 | |
| 6776 | - lib/vssh/wolfssh.h: removed |
| 6777 | |
| 6778 | Unused header file |
| 6779 | |
| 6780 | Reported-by: Illarion Taev |
| 6781 | Fixes #8863 |
| 6782 | Closes #8866 |
| 6783 | |
| 6784 | - [Elms brought this change] |
| 6785 | |
| 6786 | wolfSSL: explicitly use compatibility layer |
| 6787 | |
| 6788 | This change removes adding an include `$prefix/wolfssl` or similar to |
| 6789 | allow for openssl include aliasing. Include paths of `wolfssl/openssl/` |
| 6790 | are used to explicitly use wolfSSL includes. This fixes cmake builds as |
| 6791 | well as avoiding potentially using openSSL headers since include path |
| 6792 | order is not guaranteed. |
| 6793 | |
| 6794 | Closes #8864 |
| 6795 | |
| 6796 | - curl: deprecate --random-file and --egd-file |
| 6797 | |
| 6798 | As libcurl no longer has any functionality for them, the tool now does |
| 6799 | nothing with them. |
| 6800 | |
| 6801 | Closes #8670 |
| 6802 | |
| 6803 | - opts: deprecate RANDOM_FILE and EGDSOCKET |
| 6804 | |
| 6805 | These two options were only ever used for the OpenSSL backend for |
| 6806 | versions before 1.1.0. They were never used for other backends and they |
| 6807 | are not used with recent OpenSSL versions. They were never used much by |
| 6808 | applications. |
| 6809 | |
| 6810 | The defines RANDOM_FILE and EGD_SOCKET can still be set at build-time |
| 6811 | for ancient EOL OpenSSL versions. |
| 6812 | |
| 6813 | Closes #8670 |
| 6814 | |
| 6815 | - [Harry Sintonen brought this change] |
| 6816 | |
| 6817 | bindlocal: don't use a random port if port number would wrap |
| 6818 | |
| 6819 | Earlier if CURLOPT_LOCALPORT + CURLOPT_LOCALPORTRANGE would go past port |
| 6820 | 65535 the code would fall back to random port rather than giving up. |
| 6821 | |
| 6822 | Closes #8862 |
| 6823 | |
| 6824 | Daniel Gustafsson (16 May 2022) |
| 6825 | - transfer: Fix potential NULL pointer dereference |
| 6826 | |
| 6827 | Commit 0ef54abf5208 accidentally used the conn variable before the |
| 6828 | assertion for it being NULL. Fix by moving the assignment which use |
| 6829 | conn to after the assertion. |
| 6830 | |
| 6831 | Closes: #8857 |
| 6832 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6833 | |
| 6834 | - docs: clarify data replacement policy for MIME API |
| 6835 | |
| 6836 | The API documentation for the MIME functions specify that the parts |
| 6837 | can be set twice, with the last call winning. While true, the user |
| 6838 | can set the parts n times for n > 2, reword to specify multiple API |
| 6839 | calls instead. |
| 6840 | |
| 6841 | Closes: #8860 |
| 6842 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6843 | |
| 6844 | Daniel Stenberg (16 May 2022) |
| 6845 | - [vvb2060 on github brought this change] |
| 6846 | |
| 6847 | ngtcp2: support boringssl crypto backend |
| 6848 | |
| 6849 | Closes #8789 |
| 6850 | |
| 6851 | - [Tatsuhiro Tsujikawa brought this change] |
| 6852 | |
| 6853 | quic: add Curl_quic_idle |
| 6854 | |
| 6855 | Add Curl_quic_idle which is called when no HTTP level read or write is |
| 6856 | performed. It is a good place to handle timer expiry for QUIC transport |
| 6857 | (.e.g, retransmission). |
| 6858 | |
| 6859 | Closes #8698 |
| 6860 | |
| 6861 | - [Gregor Jasny brought this change] |
| 6862 | |
| 6863 | mprintf: ignore clang non-literal format string |
| 6864 | |
| 6865 | Closes #8740 |
| 6866 | |
| 6867 | - [Nick Zitzmann brought this change] |
| 6868 | |
| 6869 | sectransp: check for a function defined when __BLOCKS__ is undefined |
| 6870 | |
| 6871 | SecTrustEvaluateAsync() is defined in the macOS 10.7 SDK, but it |
| 6872 | requires Grand Central Dispatch to be supported by the compiler, and |
| 6873 | some third-party macOS compilers do not support Grand Central Dispatch. |
| 6874 | SecTrustCopyPublicKey() is not present in macOS 10.6, so this shouldn't |
| 6875 | adversely affect anything. |
| 6876 | |
| 6877 | Fixes #8846 |
| 6878 | Reported-by: Egor Pugin |
| 6879 | Closes #8854 |
| 6880 | |
| 6881 | Daniel Gustafsson (16 May 2022) |
| 6882 | - test412/413: Use version macro for User-Agent |
| 6883 | |
| 6884 | Commit 46d45ea3a incorrectly hardcoded the User-Agent in the test |
| 6885 | output file which breaks when curlver is updated. Shift to using |
| 6886 | the %VERSION macro instead. |
| 6887 | |
| 6888 | Closes: #8856 |
| 6889 | |
| 6890 | - macos9: remove partial support |
| 6891 | |
| 6892 | The support for compiling on Mac OS 9 hasn't been modified since 2001 |
| 6893 | and has no active maintainer or packager, so it's time to remove it as |
| 6894 | it's incredibly unlikely to work. If a maintainer re-emerges it can be |
| 6895 | resurrected from Git history. |
| 6896 | |
| 6897 | Closes: #8836 |
| 6898 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 6899 | |
| 6900 | Daniel Stenberg (16 May 2022) |
| 6901 | - test1635: verify --fail-with-body with --retry |
| 6902 | |
| 6903 | Almost a dupe of 1634 |
| 6904 | |
| 6905 | Closes #8847 |
| 6906 | |
| 6907 | - tool_operate: make sure --fail-with-body works with --retry |
| 6908 | |
| 6909 | ... in the same way --fail already does. |
| 6910 | |
| 6911 | Reported-by: Jakub Bochenski |
| 6912 | Fixes #8845 |
| 6913 | Closes #8847 |
| 6914 | |
| 6915 | - [Tatsuhiro Tsujikawa brought this change] |
| 6916 | |
| 6917 | ngtcp2: Correct use of ngtcp2 and nghttp3 signed integer types |
| 6918 | |
| 6919 | Closes #8851 |
| 6920 | |
| 6921 | - [Tatsuhiro Tsujikawa brought this change] |
| 6922 | |
| 6923 | ngtcp2: Fix alert_read_func return value |
| 6924 | |
| 6925 | Closes #8852 |
| 6926 | |
| 6927 | - [Harry Sintonen brought this change] |
| 6928 | |
| 6929 | Curl_parsenetrc: don't access local pwbuf outside of scope |
| 6930 | |
| 6931 | Accessing local variables outside of the scope is forbidden and |
| 6932 | depending on the compiler can result in the value being |
| 6933 | overwritten. Fixed by moving the pwbuf to be in scope. |
| 6934 | |
| 6935 | Closes #8850 |
| 6936 | |
| 6937 | - RELEASE-NOTES: synced |
| 6938 | |
| 6939 | and bump curlver to 7.83.2 for now (but likely to become 7.84.0 soon) |
| 6940 | |
| 6941 | - [Frazer Smith brought this change] |
| 6942 | |
| 6943 | ci: update github actions |
| 6944 | |
| 6945 | - bump actions/checkout from 2 to 3 |
| 6946 | - bump actions/upload-artifact from 1 to 3 |
| 6947 | - bump github/codeql-actions from 1 to 2 |
| 6948 | - use version tag for actions/checkout |
| 6949 | |
| 6950 | Closes #8843 |
| 6951 | |
| 6952 | - test1919: verify CURLOPT_XOAUTH2_BEARER leak fix |
| 6953 | |
| 6954 | - url: free old conn better on reuse |
| 6955 | |
| 6956 | Make use of conn_free() better and avoid duplicate code. |
| 6957 | |
| 6958 | Reported-by: Andrea Pappacoda |
| 6959 | Fixes #8841 |
| 6960 | Closes #8842 |
| 6961 | |
| 6962 | Jay Satiro (14 May 2022) |
| 6963 | - FAQ: Clarify Windows double quote usage |
| 6964 | |
| 6965 | - Windows command prompt doesn't use literal quoting via single quotes. |
| 6966 | |
| 6967 | - Windows command prompt inner double quotes are escaped with a |
| 6968 | backslash. |
| 6969 | |
| 6970 | - Windows powershell does use single quotes but curl is not a powershell |
| 6971 | script so the arguments may not be passed on correctly. |
| 6972 | |
| 6973 | - Windows powershell inner double quotes seems can be passed to curl if |
| 6974 | the outer quotes are double quotes and an escape of backslash-backtick |
| 6975 | is used. |
| 6976 | |
| 6977 | Command prompt example: |
| 6978 | |
| 6979 | ~~~ |
| 6980 | getargs -v -d "\"a\"" |
| 6981 | |
| 6982 | argv[0]: getargs |
| 6983 | argv[1]: -v |
| 6984 | argv[2]: -d |
| 6985 | argv[3]: "a" |
| 6986 | ~~~ |
| 6987 | |
| 6988 | Ref: https://github.com/curl/curl/issues/8818 |
| 6989 | Ref: https://gist.github.com/jay/19aba48653bd591cf4b90eb9249a302c |
| 6990 | |
| 6991 | Reported-by: KotlinIsland@users.noreply.github.com |
| 6992 | |
| 6993 | Closes https://github.com/curl/curl/pull/8823 |
| 6994 | |
| 6995 | Daniel Stenberg (12 May 2022) |
| 6996 | - github/workflows/nss: apt update first |
| 6997 | |
| 6998 | Fix "libnss3-dev_3.49.1-1ubuntu1.6_amd64.deb 404 Not Found" |
| 6999 | |
| 7000 | Closes #8837 |
| 7001 | |
| 7002 | - page-footer: mention exit code zero too |
| 7003 | |
| 7004 | Success (zero) is also an "exit code" worth mentioning. |
| 7005 | |
| 7006 | Closes #8833 |
| 7007 | |
| 7008 | Daniel Gustafsson (12 May 2022) |
| 7009 | - gssapi: initialize gss_buffer_desc strings |
| 7010 | |
| 7011 | Explicitly initialize gss_buffer_desc strings such that a call to |
| 7012 | freeing resources will succeed even if no data has been allocated |
| 7013 | to it. |
| 7014 | |
| 7015 | Reported-by: Jay Satiro <raysatiro@yahoo.com> |
| 7016 | |
| 7017 | - gssapi: improve handling of errors from gss_display_status |
| 7018 | |
| 7019 | In case gss_display_status() returns an error, avoid trying to add |
| 7020 | it to the buffer as the message may well be a NULL pointer. |
| 7021 | |
| 7022 | Originally this fix comes from a discussion in issue #8816. |
| 7023 | |
| 7024 | Closes: #8832 |
| 7025 | Reviewed-by: Jay Satiro <raysatiro@yahoo.com> |
| 7026 | |
| 7027 | Jay Satiro (12 May 2022) |
| 7028 | - [steini2000 brought this change] |
| 7029 | |
| 7030 | http2: always debug print stream id in decimal with %u |
| 7031 | |
| 7032 | Prior to this change the stream id shown could be hex or decimal which |
| 7033 | was inconsistent and confusing. |
| 7034 | |
| 7035 | Closes https://github.com/curl/curl/pull/8808 |
| 7036 | |
| 7037 | Kamil Dudka (11 May 2022) |
| 7038 | - url: remove redundant #ifdefs in allocate_conn() |
| 7039 | |
| 7040 | No change in behavior intended by this commit. |
| 7041 | |
| 7042 | Daniel Stenberg (11 May 2022) |
| 7043 | - [Fabian Keil brought this change] |
| 7044 | |
| 7045 | tests 266, 116 and 1540: add a small write delay |
| 7046 | |
| 7047 | This makes it more likely that the trailer is received |
| 7048 | seperately from the last-chunk. |
| 7049 | |
| 7050 | curl doesn't seem to care about this but it makes the tests |
| 7051 | more useful when testing external proxies like Privoxy. |
| 7052 | |
| 7053 | - [Fabian Keil brought this change] |
| 7054 | |
| 7055 | tests 1117,1238,1523: adjust writedelay servercmds |
| 7056 | |
| 7057 | ... so the delays are the same now that the unit |
| 7058 | is in milliseconds. |
| 7059 | |
| 7060 | - [Fabian Keil brought this change] |
| 7061 | |
| 7062 | tests/server/sws.c: change the HTTP writedelay unit to milliseconds |
| 7063 | |
| 7064 | This allows to use write delays for large responses without |
| 7065 | resulting in the test taking an unreasonable amount of time. |
| 7066 | |
| 7067 | In many cases delaying writes by a whole second or more isn't |
| 7068 | necessary for the desired effect. |
| 7069 | |
| 7070 | Closes #8827 |
| 7071 | |
| 7072 | Daniel Gustafsson (11 May 2022) |
| 7073 | - aws-sigv4: fix potentional NULL pointer arithmetic |
| 7074 | |
| 7075 | We need to check if the strchr() call returns NULL (due to missing |
| 7076 | char) before we use the returned value in arithmetic. There is no |
| 7077 | live bug here, but fixing it before it can become for hygiene. |
| 7078 | |
| 7079 | Closes: #8814 |
| 7080 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7081 | |
| 7082 | Daniel Stenberg (11 May 2022) |
| 7083 | - quiche: support ca-fallback |
| 7084 | |
| 7085 | Follow-up to b01f3e679f4c1ea3 which added this for ngtcp2/openssl |
| 7086 | |
| 7087 | Removed from KNOWN_BUGS |
| 7088 | |
| 7089 | Fixes #8696 |
| 7090 | Closes #8830 |
| 7091 | |
| 7092 | Daniel Gustafsson (11 May 2022) |
| 7093 | - x509asn1: mark msnprintf return as unchecked |
| 7094 | |
| 7095 | We have lots of unchecked msnprintf calls, and this particular msnprintf |
| 7096 | call isn't more interesting than the others, but this one yields a Coverity |
| 7097 | warning so let's implicitly silence it. Going over the other invocations |
| 7098 | is probably a worthwhile project, but for now let's keep the static |
| 7099 | analyzers happy. |
| 7100 | |
| 7101 | Closes: #8831 |
| 7102 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7103 | |
| 7104 | Version 7.83.1 (11 May 2022) |
| 7105 | |
| 7106 | Daniel Stenberg (11 May 2022) |
| 7107 | - RELEASE-NOTES: synced |
| 7108 | |
| 7109 | curl 7.83.1 release |
| 7110 | |
| 7111 | - THANKS: added contributors from 7.83.1 |
| 7112 | |
| 7113 | - zuul: fix the ngtcp2-gnutls build |
| 7114 | |
| 7115 | Add packages and tweak the configure options. |
| 7116 | |
| 7117 | Use the GnuTLS 3.7.4 branch (not main). |
| 7118 | |
| 7119 | Closes #8829 |
| 7120 | |
| 7121 | - [Tatsuhiro Tsujikawa brought this change] |
| 7122 | |
| 7123 | ngtcp2: add ca-fallback support for OpenSSL backend |
| 7124 | |
| 7125 | Closes #8828 |
| 7126 | |
| 7127 | - url: check SSH config match on connection reuse |
| 7128 | |
| 7129 | CVE-2022-27782 |
| 7130 | |
| 7131 | Reported-by: Harry Sintonen |
| 7132 | Bug: https://curl.se/docs/CVE-2022-27782.html |
| 7133 | Closes #8825 |
| 7134 | |
| 7135 | - tls: check more TLS details for connection reuse |
| 7136 | |
| 7137 | CVE-2022-27782 |
| 7138 | |
| 7139 | Reported-by: Harry Sintonen |
| 7140 | Bug: https://curl.se/docs/CVE-2022-27782.html |
| 7141 | Closes #8825 |
| 7142 | |
| 7143 | - cookies: make bad_domain() not consider a trailing dot fine |
| 7144 | |
| 7145 | The check for a dot in the domain must not consider a single trailing |
| 7146 | dot to be fine, as then TLD + trailing dot is fine and curl will accept |
| 7147 | setting cookies for it. |
| 7148 | |
| 7149 | CVE-2022-27779 |
| 7150 | |
| 7151 | Reported-by: Axel Chong |
| 7152 | Bug: https://curl.se/docs/CVE-2022-27779.html |
| 7153 | Closes #8820 |
| 7154 | |
| 7155 | - test977: reproduce ability to set cookie on TLD |
| 7156 | |
| 7157 | When PSL is not enabled |
| 7158 | |
| 7159 | - scripts/contributors.sh: correct the copyright range |
| 7160 | |
| 7161 | - docs/RELEASE-PROCEDURE.md: refreshed and adjsuted the release dates |
| 7162 | |
| 7163 | - test379: verify --remove-on-error with --no-clobber |
| 7164 | |
| 7165 | - post_per_transfer: remove the updated file name |
| 7166 | |
| 7167 | When --remove-on-error is used with --no-clobber, it might have an |
| 7168 | updated file name to remove. |
| 7169 | |
| 7170 | Bug: https://curl.se/docs/CVE-2022-27778.html |
| 7171 | |
| 7172 | CVE-2022-27778 |
| 7173 | |
| 7174 | Reported-by: Harry Sintonen |
| 7175 | |
| 7176 | Closes #8824 |
| 7177 | |
| 7178 | - hsts: ignore trailing dots when comparing hosts names |
| 7179 | |
| 7180 | CVE-2022-30115 |
| 7181 | |
| 7182 | Reported-by: Axel Chong |
| 7183 | Bug: https://curl.se/docs/CVE-2022-30115.html |
| 7184 | Closes #8821 |
| 7185 | |
| 7186 | - test440/441: verify HSTS with trailing dots |
| 7187 | |
| 7188 | - libtest/lib1560: verify the host name percent decode fix |
| 7189 | |
| 7190 | - urlapi: reject percent-decoding host name into separator bytes |
| 7191 | |
| 7192 | CVE-2022-27780 |
| 7193 | |
| 7194 | Reported-by: Axel Chong |
| 7195 | Bug: https://curl.se/docs/CVE-2022-27780.html |
| 7196 | Closes #8826 |
| 7197 | |
| 7198 | - nss: return error if seemingly stuck in a cert loop |
| 7199 | |
| 7200 | CVE-2022-27781 |
| 7201 | |
| 7202 | Reported-by: Florian KohnhƤuser |
| 7203 | Bug: https://curl.se/docs/CVE-2022-27781.html |
| 7204 | Closes #8822 |
| 7205 | |
| 7206 | - test412/413: verify alt-svc with trailing dots |
| 7207 | |
| 7208 | - altsvc: fix host name matching for trailing dots |
| 7209 | |
| 7210 | Closes #8819 |
| 7211 | |
| 7212 | - [Garrett Squire brought this change] |
| 7213 | |
| 7214 | hyper: fix test 357 |
| 7215 | |
| 7216 | This change fixes the hyper API such that PUT requests that receive a |
| 7217 | 417 response can retry without the Expect header. |
| 7218 | |
| 7219 | Closes #8811 |
| 7220 | |
| 7221 | - [Harry Sintonen brought this change] |
| 7222 | |
| 7223 | sectransp: bail out if SSLSetPeerDomainName fails |
| 7224 | |
| 7225 | Before the code would just warn about SSLSetPeerDomainName() errors. |
| 7226 | |
| 7227 | Closes #8798 |
| 7228 | |
| 7229 | - http_proxy/hyper: handle closed connections |
| 7230 | |
| 7231 | Enable test 1021 for hyper builds. |
| 7232 | |
| 7233 | Patched-by: Prithvi MK |
| 7234 | Fixes #8700 |
| 7235 | Closes #8806 |
| 7236 | |
| 7237 | - KNOWN_BUGS: timeout when reusing a http3 connection |
| 7238 | |
| 7239 | Closes #8764 |
| 7240 | |
| 7241 | - KNOWN_BUGS: configure --with-ca-fallback is not supported by h3 |
| 7242 | |
| 7243 | Closes #8696 |
| 7244 | |
| 7245 | - [Ryan Schmidt brought this change] |
| 7246 | |
| 7247 | Makefile: fix "make ca-firefox" |
| 7248 | |
| 7249 | Closes #8804 |
| 7250 | |
| 7251 | Daniel Gustafsson (5 May 2022) |
| 7252 | - tests: fix markdown formatting in README |
| 7253 | |
| 7254 | The asterisk in the abbreviation *NIX (for UNIX/Linux) needs to be |
| 7255 | escaped to not mean start of italic formatting. This is consistent |
| 7256 | with docs/RELEASE-PROCEDURE.md. |
| 7257 | |
| 7258 | Closes: #8802 |
| 7259 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7260 | |
| 7261 | Daniel Stenberg (5 May 2022) |
| 7262 | - TODO: expand on "Expose tried IP addresses that failed" |
| 7263 | |
| 7264 | Ref: #8794 |
| 7265 | |
| 7266 | Daniel Gustafsson (5 May 2022) |
| 7267 | - [Fabian Keil brought this change] |
| 7268 | |
| 7269 | tests/server: declare variable 'reqlogfile' static |
| 7270 | |
| 7271 | Silences the warning: |
| 7272 | |
| 7273 | CC socksd-socksd.o |
| 7274 | socksd.c:143:13: warning: no previous extern declaration for |
| 7275 | non-static variable 'reqlogfile' [-Wmissing-variable-declarations] |
| 7276 | const char *reqlogfile = DEFAULT_REQFILE; |
| 7277 | ^ |
| 7278 | socksd.c:143:7: note: declare 'static' if the variable is not |
| 7279 | intended to be used outside of this translation unit |
| 7280 | const char *reqlogfile = DEFAULT_REQFILE; |
| 7281 | ^ |
| 7282 | 1 warning generated. |
| 7283 | |
| 7284 | ... when compiling with clang 13. |
| 7285 | |
| 7286 | Closes: #8799 |
| 7287 | Reviewed-by: Daniel Gustafsson <daniel@yesql.se> |
| 7288 | |
| 7289 | - HTTP-COOKIES: add missing CURLOPT_COOKIESESSION |
| 7290 | |
| 7291 | Commit 980a47b42 added support for ignoring session cookies, but it |
| 7292 | was never added to the documentation. |
| 7293 | |
| 7294 | Closes: #8795 |
| 7295 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7296 | |
| 7297 | Daniel Stenberg (5 May 2022) |
| 7298 | - docs/THANKS: remove name duplicate |
| 7299 | |
| 7300 | - [Philip Heiduck brought this change] |
| 7301 | |
| 7302 | .mailmap: update |
| 7303 | |
| 7304 | Closes #8800 |
| 7305 | |
| 7306 | Jay Satiro (5 May 2022) |
| 7307 | - mbedtls: fix some error messages |
| 7308 | |
| 7309 | Prior to this change some of the error messages misidentified the |
| 7310 | function that failed. |
| 7311 | |
| 7312 | Daniel Stenberg (5 May 2022) |
| 7313 | - RELEASE-NOTES: synced |
| 7314 | |
| 7315 | - [Sergey Markelov brought this change] |
| 7316 | |
| 7317 | x509asn1: make do_pubkey handle EC public keys |
| 7318 | |
| 7319 | Closes #8757 |
| 7320 | |
| 7321 | - [Harry Sintonen brought this change] |
| 7322 | |
| 7323 | mbedtls: bail out if rng init fails |
| 7324 | |
| 7325 | There was a failf() call but no actual error return. |
| 7326 | |
| 7327 | Closes #8796 |
| 7328 | |
| 7329 | - [Sergey Markelov brought this change] |
| 7330 | |
| 7331 | urlapi: address (harmless) UndefinedBehavior sanitizer warning |
| 7332 | |
| 7333 | `while(i--)` causes runtime error: unsigned integer overflow: 0 - 1 |
| 7334 | cannot be represented in type 'size_t' (aka 'unsigned long') |
| 7335 | |
| 7336 | Closes #8797 |
| 7337 | |
| 7338 | - [Fabian Keil brought this change] |
| 7339 | |
| 7340 | test{898,974,976}: add 'HTTP proxy' keywords |
| 7341 | |
| 7342 | ... so the tests can be automatically skipped when |
| 7343 | testing external HTTP proxies like Privoxy. |
| 7344 | |
| 7345 | Closes #8791 |
| 7346 | |
| 7347 | - [Harry Sintonen brought this change] |
| 7348 | |
| 7349 | gskit_connect_step1: fixed bogus setsockopt calls |
| 7350 | |
| 7351 | setsockopt takes a reference to value, not value. With the current |
| 7352 | code this just leads to -1 return value with errno EFAULT. |
| 7353 | |
| 7354 | Closes #8793 |
| 7355 | |
| 7356 | - CURLOPT_SSH_AUTH_TYPES.3: fix the default |
| 7357 | |
| 7358 | The default is all possible methods. |
| 7359 | |
| 7360 | Closes #8792 |
| 7361 | |
| 7362 | - CURLOPT_DOH_URL.3: mention the known bug |
| 7363 | |
| 7364 | It is mostly duplicating info from KNOWN_BUGS but make it easier to find |
| 7365 | for users of this option. |
| 7366 | |
| 7367 | Closes #8790 |
| 7368 | |
| 7369 | - CURLOPT_HSTS*FUNCTION.3: document the involved structs as well |
| 7370 | |
| 7371 | Reviewed-By: Daniel Gustafsson |
| 7372 | Closes #8788 |
| 7373 | |
| 7374 | - docs/SECURITY-PROCESS.md: "Visible command line arguments" |
| 7375 | |
| 7376 | - SECURITY-PROCESS: mention "URL inconsistencies" |
| 7377 | |
| 7378 | ... as common problems that are *not* vulns. |
| 7379 | |
| 7380 | Daniel Gustafsson (2 May 2022) |
| 7381 | - contributors: strip off final comma |
| 7382 | |
| 7383 | The final row of contributors should not end with a comma as it's the |
| 7384 | end of the list. |
| 7385 | |
| 7386 | Closes: #8785 |
| 7387 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7388 | |
| 7389 | Daniel Stenberg (2 May 2022) |
| 7390 | - [Philip Heiduck brought this change] |
| 7391 | |
| 7392 | misc: use "autoreconf -fi" instead buildconf |
| 7393 | |
| 7394 | Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> |
| 7395 | Closes #8777 |
| 7396 | |
| 7397 | Daniel Gustafsson (2 May 2022) |
| 7398 | - [Philip Heiduck brought this change] |
| 7399 | |
| 7400 | cirrus: Use pip for Python packages on FreeBSD |
| 7401 | |
| 7402 | Using pip instead of easy_install is more in line with how other |
| 7403 | CI images are being maintained. |
| 7404 | |
| 7405 | Closes: #8783 |
| 7406 | Reviewed-by: Daniel Gustafsson <daniel@yesql.se> |
| 7407 | |
| 7408 | - [Philip Heiduck brought this change] |
| 7409 | |
| 7410 | cirrus: Update to FreeBSD 12.3 |
| 7411 | |
| 7412 | Closes: #8783 |
| 7413 | Reviewed-by: Daniel Gustafsson <daniel@yesql.se> |
| 7414 | |
| 7415 | - tool_getparam: simplify conditional statement |
| 7416 | |
| 7417 | param_place cannot be NULL here since we immediately efter this block |
| 7418 | perform arithmetic on it (and use it in order to get here) so there is |
| 7419 | little reason to check. |
| 7420 | |
| 7421 | Closes: #8786 |
| 7422 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7423 | |
| 7424 | - RELEASE-NOTES: synced |
| 7425 | |
| 7426 | - gskit: remove unused function set_callback |
| 7427 | |
| 7428 | This function has been unused since the initial commit of the GSKit |
| 7429 | backend in 0eba02fd4. The motivation for the code was getting the |
| 7430 | whole certificate chain: the only place where the latter is available |
| 7431 | is as a callback parameter. Unfortunately it is not possible to pass |
| 7432 | a user pointer to this callback, which precludes the possibility to |
| 7433 | associate the cert chain with a data/conn structure. |
| 7434 | |
| 7435 | For further information, search for pgsk_cert_validation_callback on: |
| 7436 | https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_71/apis/gsk_attribute_set_callback.htm |
| 7437 | |
| 7438 | As the upstream library never added a parameter like that to the API, |
| 7439 | we give up the wait and remove the dead code. |
| 7440 | |
| 7441 | Closes: #8782 |
| 7442 | Reviewed-by: Patrick Monnerat <patrick@monnerat.net> |
| 7443 | |
| 7444 | - curl: free resource in error path |
| 7445 | |
| 7446 | If the new filename cannot be generated due to memory pressure, free |
| 7447 | the allocated aname on the way out to avoid a small leak. |
| 7448 | |
| 7449 | Closes: #8770 |
| 7450 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7451 | |
| 7452 | - curl: guard against size_t wraparound in no-clobber code |
| 7453 | |
| 7454 | When generating the new filename, make sure we aren't overflowing the |
| 7455 | size_t limit when calculating the new length. This is mostly academic |
| 7456 | but good code hygeine nonetheless. |
| 7457 | |
| 7458 | Closes: #8771 |
| 7459 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7460 | |
| 7461 | Daniel Stenberg (30 Apr 2022) |
| 7462 | - gha: build msh3 |
| 7463 | |
| 7464 | Closes #8779 |
| 7465 | |
| 7466 | - scripts/cijobs.pl: try "current branch" first then "master" |
| 7467 | |
| 7468 | - [Yusuke Nakamura brought this change] |
| 7469 | |
| 7470 | msh3: get msh3 version from MsH3Version |
| 7471 | |
| 7472 | Closes #8762 |
| 7473 | |
| 7474 | - [Yusuke Nakamura brought this change] |
| 7475 | |
| 7476 | msh3: psss remote_port to MsH3ConnectionOpen |
| 7477 | |
| 7478 | MsH3 supported additional "Port" parameter to connect not hosted on |
| 7479 | 443 port QUIC website. |
| 7480 | |
| 7481 | * https://github.com/nibanks/msh3/releases/tag/v0.3.0 |
| 7482 | * https://github.com/nibanks/msh3/pull/37 |
| 7483 | |
| 7484 | Closes #8762 |
| 7485 | |
| 7486 | - [Christian Weisgerber brought this change] |
| 7487 | |
| 7488 | openssl: define HAVE_SSL_CTX_SET_EC_CURVES for libressl |
| 7489 | |
| 7490 | SSL_CTX_set1_curves_list() has been available since LibreSSL 2.5.3, |
| 7491 | released five years ago. |
| 7492 | |
| 7493 | Bug: https://curl.se/mail/lib-2022-04/0059.html |
| 7494 | Closes #8773 |
| 7495 | |
| 7496 | - http: move Curl_allow_auth_to_host() |
| 7497 | |
| 7498 | It was mistakenly put within the CURL_DISABLE_HTTP_AUTH #ifdef |
| 7499 | |
| 7500 | Reported-by: Michael Olbrich |
| 7501 | Fixes #8772 |
| 7502 | Closes #8775 |
| 7503 | |
| 7504 | Daniel Gustafsson (29 Apr 2022) |
| 7505 | - msh3: print boolean value as text representation |
| 7506 | |
| 7507 | Print the boolean value as its string representation instead of with |
| 7508 | %hhu which isn't a format we typically use. |
| 7509 | |
| 7510 | Closes: #8763 |
| 7511 | Reviewed-by: Nick Banks <nibanks@microsoft.com> |
| 7512 | |
| 7513 | Daniel Stenberg (29 Apr 2022) |
| 7514 | - data/test376: set a proper name |
| 7515 | |
| 7516 | - GHA/mbedtls: enabled nghttp2 in the build |
| 7517 | |
| 7518 | Closes #8767 |
| 7519 | |
| 7520 | - mbedtls: fix compile when h2-enabled |
| 7521 | |
| 7522 | Fixes #8766 |
| 7523 | Reported-by: LigH-de on github |
| 7524 | Closes #8768 |
| 7525 | |
| 7526 | - RELEASE-NOTES: synced |
| 7527 | |
| 7528 | bumped curlver to 7.83.1-dev |
| 7529 | |
| 7530 | - SECURITY-PROCESS: extended |
| 7531 | |
| 7532 | Also clarify BUG-BOUNTY.md with IBB details. |
| 7533 | |
| 7534 | Closes #8754 |
| 7535 | |
| 7536 | - [Adam Rosenfield brought this change] |
| 7537 | |
| 7538 | conn: fix typo 'connnection' -> 'connection' in two function names |
| 7539 | |
| 7540 | Closes #8759 |
| 7541 | |
| 7542 | Version 7.83.0 (27 Apr 2022) |
| 7543 | |
| 7544 | Daniel Stenberg (27 Apr 2022) |
| 7545 | - RELEASE-NOTES: synced |
| 7546 | |
| 7547 | The 7.83.0 release |
| 7548 | |
| 7549 | - docs/THANKS: contributors from 7.83.0 |
| 7550 | |
| 7551 | - test 898/974/976: require proxy to run |
| 7552 | |
| 7553 | Fixes #8755 |
| 7554 | Reported-by: Marc Hƶrsken |
| 7555 | Closes #8756 |
| 7556 | |
| 7557 | - gnutls: don't leak the SRP credentials in redirects |
| 7558 | |
| 7559 | Follow-up to 620ea21410030 and 139a54ed0a172a |
| 7560 | |
| 7561 | Reported-by: Harry Sintonen |
| 7562 | Closes #8752 |
| 7563 | |
| 7564 | - CURLOPT*TLSAUTH: they only work with OpenSSL or GnuTLS |
| 7565 | |
| 7566 | Closes #8753 |
| 7567 | |
| 7568 | - openssl: don't leak the SRP credentials in redirects either |
| 7569 | |
| 7570 | Follow-up to 620ea21410030 |
| 7571 | |
| 7572 | Reported-by: Harry Sintonen |
| 7573 | Closes #8751 |
| 7574 | |
| 7575 | - [Liam Warfield brought this change] |
| 7576 | |
| 7577 | hyper: fix tests 580 and 581 for hyper |
| 7578 | |
| 7579 | Hyper now has the ability to preserve header order. This commit adds a |
| 7580 | few lines setting the connection options for this feature. |
| 7581 | |
| 7582 | Related to issue #8617 |
| 7583 | Closes #8707 |
| 7584 | |
| 7585 | - conncache: remove name arg from Curl_conncache_find_bundle |
| 7586 | |
| 7587 | To simplify, and also since the returned name is not the full actual |
| 7588 | name used for the check. The port number and zone id is also involved, |
| 7589 | so just showing the name is misleading. |
| 7590 | |
| 7591 | Closes #8750 |
| 7592 | |
| 7593 | - tests: verify the fix for CVE-2022-27774 |
| 7594 | |
| 7595 | - Test 973 redirects from HTTP to FTP, clear auth |
| 7596 | - Test 974 redirects from HTTP to HTTP different port, clear auth |
| 7597 | - Test 975 redirects from HTTP to FTP, permitted to keep auth |
| 7598 | - Test 976 redirects from HTTP to HTTP different port, permitted to keep |
| 7599 | auth |
| 7600 | |
| 7601 | - transfer: redirects to other protocols or ports clear auth |
| 7602 | |
| 7603 | ... unless explicitly permitted. |
| 7604 | |
| 7605 | Bug: https://curl.se/docs/CVE-2022-27774.html |
| 7606 | Reported-by: Harry Sintonen |
| 7607 | Closes #8748 |
| 7608 | |
| 7609 | - connect: store "conn_remote_port" in the info struct |
| 7610 | |
| 7611 | To make it available after the connection ended. |
| 7612 | |
| 7613 | - cookie.d: clarify when cookies are always sent |
| 7614 | |
| 7615 | - test898: verify the fix for CVE-2022-27776 |
| 7616 | |
| 7617 | Do not pass on Authorization headers on redirects to another port |
| 7618 | |
| 7619 | - http: avoid auth/cookie on redirects same host diff port |
| 7620 | |
| 7621 | CVE-2022-27776 |
| 7622 | |
| 7623 | Reported-by: Harry Sintonen |
| 7624 | Bug: https://curl.se/docs/CVE-2022-27776.html |
| 7625 | Closes #8749 |
| 7626 | |
| 7627 | - libssh2: make the md5 comparison fail if wrong length |
| 7628 | |
| 7629 | Making it just skip the check unless exactly 32 is too brittle. Even if |
| 7630 | the docs says it needs to be exactly 32, it is be safer to make the |
| 7631 | comparison fail here instead. |
| 7632 | |
| 7633 | Reported-by: Harry Sintonen |
| 7634 | Bug: https://hackerone.com/reports/1549461 |
| 7635 | Closes #8745 |
| 7636 | |
| 7637 | - conncache: include the zone id in the "bundle" hashkey |
| 7638 | |
| 7639 | Make connections to two separate IPv6 zone ids create separate |
| 7640 | connections. |
| 7641 | |
| 7642 | Reported-by: Harry Sintonen |
| 7643 | Bug: https://curl.se/docs/CVE-2022-27775.html |
| 7644 | Closes #8747 |
| 7645 | |
| 7646 | - [Patrick Monnerat brought this change] |
| 7647 | |
| 7648 | url: check sasl additional parameters for connection reuse. |
| 7649 | |
| 7650 | Also move static function safecmp() as non-static Curl_safecmp() since |
| 7651 | its purpose is needed at several places. |
| 7652 | |
| 7653 | Bug: https://curl.se/docs/CVE-2022-22576.html |
| 7654 | |
| 7655 | CVE-2022-22576 |
| 7656 | |
| 7657 | Closes #8746 |
| 7658 | |
| 7659 | - libssh2: compare sha256 strings case sensitively |
| 7660 | |
| 7661 | Reported-by: Harry Sintonen |
| 7662 | Bug: https://hackerone.com/reports/1549435 |
| 7663 | Closes #8744 |
| 7664 | |
| 7665 | - tool_getparam: error out on missing -K file |
| 7666 | |
| 7667 | Add test 411 to verify. |
| 7668 | |
| 7669 | Reported-by: Median Median Stride |
| 7670 | Bug: https://hackerone.com/reports/1542881 |
| 7671 | Closes #8731 |
| 7672 | |
| 7673 | - [Tatsuhiro Tsujikawa brought this change] |
| 7674 | |
| 7675 | ngtcp2: deal with sub-millisecond timeout |
| 7676 | |
| 7677 | Closes #8738 |
| 7678 | |
| 7679 | - misc: update copyright year ranges |
| 7680 | |
| 7681 | - c_escape: escape '?' in generated --libcurl code |
| 7682 | |
| 7683 | In order to avoid the risk of it being used in an accidental trigraph in |
| 7684 | the generated code. |
| 7685 | |
| 7686 | Reported-by: Harry Sintonen |
| 7687 | Bug: https://hackerone.com/reports/1548535 |
| 7688 | Closes #8742 |
| 7689 | |
| 7690 | - [Philip Heiduck brought this change] |
| 7691 | |
| 7692 | mlc: curl.zuul.vexxhost.dev is reachable again |
| 7693 | |
| 7694 | remove it from ignorelist for linkcheck |
| 7695 | |
| 7696 | Closes #8736 |
| 7697 | |
| 7698 | - [Tatsuhiro Tsujikawa brought this change] |
| 7699 | |
| 7700 | ngtcp2: avoid busy loop in low CWND situation |
| 7701 | |
| 7702 | Closes #8739 |
| 7703 | |
| 7704 | - TODO: telnet - exit immediately upon connection if stdin is /dev/null |
| 7705 | |
| 7706 | Suggested-by: Robin A. Meade |
| 7707 | URL: https://curl.se/mail/archive-2022-04/0027.html |
| 7708 | |
| 7709 | - [Kushal Das brought this change] |
| 7710 | |
| 7711 | docs: updates spellings with full words |
| 7712 | |
| 7713 | Closes #8730 |
| 7714 | |
| 7715 | - tests/FILEFORMAT.md: spellfix |
| 7716 | |
| 7717 | Daniel Gustafsson (21 Apr 2022) |
| 7718 | - misc: fix typos |
| 7719 | |
| 7720 | Fix a few random typos is comments and workflow names. |
| 7721 | |
| 7722 | - macos: fix .plist installation into framework |
| 7723 | |
| 7724 | The copy command introduced in e498a9b1f had leftover '>' from the |
| 7725 | previous sed command it replaced, which broke its syntax. Fix by |
| 7726 | removing. |
| 7727 | |
| 7728 | Reported-by: Emanuele Torre <torreemanuele6@gmail.com> |
| 7729 | |
| 7730 | Daniel Stenberg (21 Apr 2022) |
| 7731 | - [Christopher Degawa brought this change] |
| 7732 | |
| 7733 | Makefile: fix ca-bundle due to mk-ca-bundle.pl being moved |
| 7734 | |
| 7735 | The script was moved in 8e22fc68e7dda43e9f but the lines that called it |
| 7736 | was not changed to reflect it's new position |
| 7737 | |
| 7738 | Signed-off-by: Christopher Degawa <ccom@randomderp.com> |
| 7739 | |
| 7740 | Closes #8728 |
| 7741 | |
| 7742 | Daniel Gustafsson (20 Apr 2022) |
| 7743 | - macos: set .plist version in autoconf |
| 7744 | |
| 7745 | Set the libcurl version in libcurl.plist like how libcurl.vers is |
| 7746 | created. |
| 7747 | |
| 7748 | Closes: #8692 |
| 7749 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7750 | Reviewed-by: Nick Zitzmann <nickzman@gmail.com> |
| 7751 | |
| 7752 | - cookies: Improve errorhandling for reading cookiefile |
| 7753 | |
| 7754 | The existing programming had some issues with errorhandling for reading |
| 7755 | the cookie file. If the file failed to open, we would silently ignore it |
| 7756 | and continue as if there was no file (or stdin) passed. In this case, we |
| 7757 | would also call fclose() on the NULL FILE pointer, which is undefined |
| 7758 | behavior. Fix by ensuring that the FILE pointer is set before calling |
| 7759 | fclose on it, and issue a warning in case the file cannot be opened. |
| 7760 | Erroring out on nonexisting file would break backwards compatibility of |
| 7761 | very old behavior so we can't really go there. |
| 7762 | |
| 7763 | Closes: #8699 |
| 7764 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7765 | Reviewed-by: Jay Satiro <raysatiro@yahoo.com> |
| 7766 | |
| 7767 | Daniel Stenberg (20 Apr 2022) |
| 7768 | - libcurl-tutorial.3: spellfix and minor polish |
| 7769 | |
| 7770 | - CURLINFO_PRIMARY_PORT.3: spellfix |
| 7771 | |
| 7772 | Reported-by: Patrick Monnerat |
| 7773 | |
| 7774 | - [Jay Dommaschk brought this change] |
| 7775 | |
| 7776 | libssh: fix double close |
| 7777 | |
| 7778 | libssh closes the socket in ssh_diconnect() so make sure that libcurl |
| 7779 | does not also close it. |
| 7780 | |
| 7781 | Fixes #8708 |
| 7782 | Closes #8718 |
| 7783 | |
| 7784 | Jay Satiro (20 Apr 2022) |
| 7785 | - [Gisle Vanem brought this change] |
| 7786 | |
| 7787 | unit1620: call global_init before calling Curl_open |
| 7788 | |
| 7789 | Curl_open calls the resolver init and on Windows if the resolver backend |
| 7790 | is c-ares then the Windows sockets library (winsock) must already have |
| 7791 | been initialized (via global init). |
| 7792 | |
| 7793 | Ref: https://github.com/curl/curl/pull/8540#issuecomment-1059771800 |
| 7794 | |
| 7795 | Closes https://github.com/curl/curl/pull/8719 |
| 7796 | |
| 7797 | Daniel Stenberg (19 Apr 2022) |
| 7798 | - CURLINFO_PRIMARY_PORT.3: clarify which port this is |
| 7799 | |
| 7800 | As it was not entirely clear previously. |
| 7801 | |
| 7802 | Closes #8725 |
| 7803 | |
| 7804 | - CURLOPT_UNRESTRICTED_AUTH.3: extended explanation |
| 7805 | |
| 7806 | Include details about Authentication headers. |
| 7807 | |
| 7808 | Reported-by: Brad Spencer |
| 7809 | Fixes #8724 |
| 7810 | Closes #8726 |
| 7811 | |
| 7812 | - .github/workflows/macos.yml: add a libssh job with c-ares |
| 7813 | |
| 7814 | ... to enable the memdebug system |
| 7815 | |
| 7816 | Closes #8720 |
| 7817 | |
| 7818 | - RELEASE-NOTES: synced |
| 7819 | |
| 7820 | Jay Satiro (17 Apr 2022) |
| 7821 | - [Gisle Vanem brought this change] |
| 7822 | |
| 7823 | docs/HTTP3.md: fix typo |
| 7824 | |
| 7825 | also fix msh3 section formatting |
| 7826 | |
| 7827 | Ref: https://github.com/curl/curl/commit/37492ebb#r70980087 |
| 7828 | |
| 7829 | Marc Hoersken (17 Apr 2022) |
| 7830 | - timediff.[ch]: add curlx helper functions for timeval conversions |
| 7831 | |
| 7832 | Also move timediff_t definitions from timeval.h to timediff.h and |
| 7833 | then make timeval.h include the new standalone-capable timediff.h. |
| 7834 | |
| 7835 | Reviewed-by: Jay Satiro |
| 7836 | Reviewed-by: Daniel Stenberg |
| 7837 | |
| 7838 | Supersedes #5888 |
| 7839 | Closes #8595 |
| 7840 | |
| 7841 | Daniel Stenberg (17 Apr 2022) |
| 7842 | - [Balakrishnan Balasubramanian brought this change] |
| 7843 | |
| 7844 | tests: refactor server/socksd.c to support --unix-socket |
| 7845 | |
| 7846 | Closes #8687 |
| 7847 | |
| 7848 | - [Emanuele Torre brought this change] |
| 7849 | |
| 7850 | tool_paramhlp: use feof(3) to identify EOF correctly when using fread(3) |
| 7851 | |
| 7852 | This loop was using the number of bytes read from the file as condition |
| 7853 | to keep reading. |
| 7854 | |
| 7855 | From Linux's fread(3) man page: |
| 7856 | > On success, fread() and fwrite() return the number of items read or |
| 7857 | > written. This number equals the number of bytes transferred only when |
| 7858 | > size is 1. If an error occurs, or the end of the file is reached, the |
| 7859 | > return value is a short item count (or zero). |
| 7860 | > |
| 7861 | > The file position indicator for the stream is advanced by the number |
| 7862 | > of bytes successfully read or written. |
| 7863 | > |
| 7864 | > fread() does not distinguish between end-of-file and error, and |
| 7865 | > callers must use feof(3) and ferror(3) to determine which occurred. |
| 7866 | |
| 7867 | This means that nread!=0 doesn't make much sense as an end condition for |
| 7868 | the loop: nread==0 doesn't necessarily mean that EOF has been reached or |
| 7869 | an error has occured (but that is usually the case) and nread!=0 doesn't |
| 7870 | necessarily mean that EOF has not been reached or that no read errors |
| 7871 | have occured. feof(3) and ferror(3) should be uses when using fread(3). |
| 7872 | |
| 7873 | Currently curl has to performs an extra fread(3) call to get a return |
| 7874 | value equal to 0 to stop looping. |
| 7875 | |
| 7876 | This usually "works" (even though nread==0 shouldn't be interpreted as |
| 7877 | EOF) if stdin is a pipe because EOF usually marks the "real" end of the |
| 7878 | stream, so the extra fread(3) call will return immediately and the extra |
| 7879 | read syscall won't be noticeable: |
| 7880 | |
| 7881 | bash-5.1$ strace -e read curl -s -F file=@- 0x0.st <<< a 2>&1 | |
| 7882 | > tail -n 5 |
| 7883 | read(0, "a\n", 4096) = 2 |
| 7884 | read(0, "", 4096) = 0 |
| 7885 | read(0, "", 4096) = 0 |
| 7886 | http://0x0.st/oRs.txt |
| 7887 | +++ exited with 0 +++ |
| 7888 | bash-5.1$ |
| 7889 | |
| 7890 | But this doesn't work if curl is reading from stdin, stdin is a |
| 7891 | terminal, and the EOF is being emulated using a shell with ^D. Two |
| 7892 | consecutive ^D will be required in this case to actually make curl stop |
| 7893 | reading: |
| 7894 | |
| 7895 | bash-5.1$ curl -F file=@- 0x0.st |
| 7896 | a |
| 7897 | ^D^D |
| 7898 | http://0x0.st/oRs.txt |
| 7899 | bash-5.1$ |
| 7900 | |
| 7901 | A possible workaround to this issue is to use a program that handles EOF |
| 7902 | correctly to indirectly send data to curl's stdin: |
| 7903 | |
| 7904 | bash-5.1$ cat - | curl -F file=@- 0x0.st |
| 7905 | a |
| 7906 | ^D |
| 7907 | http://0x0.st/oRs.txt |
| 7908 | bash-5.1$ |
| 7909 | |
| 7910 | This patch makes curl handle EOF properly when using fread(3) in |
| 7911 | file2memory() so that the workaround is not necessary. |
| 7912 | |
| 7913 | Since curl was previously ignoring read errors caused by this fread(3), |
| 7914 | ferror(3) is also used in the condition of the loop: read errors and EOF |
| 7915 | will have the same meaning; this is done to somewhat preserve the old |
| 7916 | behaviour instead of making the command fail when a read error occurs. |
| 7917 | |
| 7918 | Closes #8701 |
| 7919 | |
| 7920 | - gen.pl: change wording for mutexed options |
| 7921 | |
| 7922 | Instead of saying "This option overrides NNN", now say "This option is |
| 7923 | mutually exclusive to NNN" in the generated man page ouput, as the |
| 7924 | option does not in all cases actually override the others but they are |
| 7925 | always mutually exclusive. |
| 7926 | |
| 7927 | Ref: #8704 |
| 7928 | Closes #8716 |
| 7929 | |
| 7930 | - curl: error out if -T and -d are used for the same URL |
| 7931 | |
| 7932 | As one implies PUT and the other POST, both cannot be used |
| 7933 | simultaneously. |
| 7934 | |
| 7935 | Add test 378 to verify. |
| 7936 | |
| 7937 | Reported-by: Boris Verkhovskiy |
| 7938 | Fixes #8704 |
| 7939 | Closes #8715 |
| 7940 | |
| 7941 | - lib: remove exclamation marks |
| 7942 | |
| 7943 | ... from infof() and failf() calls. Make them less attention seeking. |
| 7944 | |
| 7945 | Closes #8713 |
| 7946 | |
| 7947 | - fail.d: tweak the description |
| 7948 | |
| 7949 | Reviewed-by: Daniel Gustafsson |
| 7950 | Suggested-by: Robert Charles Muir |
| 7951 | Ref: https://twitter.com/rcmuir/status/1514915401574010887 |
| 7952 | |
| 7953 | Closes #8714 |
| 7954 | |
| 7955 | Daniel Gustafsson (15 Apr 2022) |
| 7956 | - docs: Fix missing semicolon in example code |
| 7957 | |
| 7958 | Multiple share examples were missing a semicolon on the line defining |
| 7959 | the CURLSHcode variable. |
| 7960 | |
| 7961 | Closes: #8697 |
| 7962 | Reported-by: Michael Kaufmann <mail@michael-kaufmann.ch> |
| 7963 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7964 | |
| 7965 | - infof: consistent capitalization of warning messages |
| 7966 | |
| 7967 | Ensure that all infof calls with a warning message are capitalized |
| 7968 | in the same way. At some point we should probably set up a style- |
| 7969 | guide for infof but until then let's aim for a little consistenncy |
| 7970 | where we can. |
| 7971 | |
| 7972 | Closes: #8711 |
| 7973 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7974 | |
| 7975 | - RELEASE-NOTES: synced |
| 7976 | |
| 7977 | - [Matteo Baccan brought this change] |
| 7978 | |
| 7979 | perl: removed a double semicolon at end of line |
| 7980 | |
| 7981 | Remove double semicolons at end of line in Perl code. |
| 7982 | |
| 7983 | Closes: #8709 |
| 7984 | Reviewed-by: Daniel Gustafsson <daniel@yesql.se> |
| 7985 | |
| 7986 | - curl_easy_header: fix typos in documentation |
| 7987 | |
| 7988 | Closes: #8694 |
| 7989 | Reviewed-by: Daniel Stenberg <daniel@haxx.se> |
| 7990 | |
| 7991 | Marcel Raad (11 Apr 2022) |
| 7992 | - appveyor: add Cygwin build |
| 7993 | |
| 7994 | Closes https://github.com/curl/curl/pull/8693 |
| 7995 | |
| 7996 | - appveyor: only add MSYS2 to PATH where required |
| 7997 | |
| 7998 | Closes https://github.com/curl/curl/pull/8693 |
| 7999 | |
| 8000 | Daniel Stenberg (10 Apr 2022) |
| 8001 | - [Tatsuhiro Tsujikawa brought this change] |
| 8002 | |
| 8003 | ngtcp2: fix memory leak |
| 8004 | |
| 8005 | Closes #8691 |
| 8006 | |
| 8007 | - [Tatsuhiro Tsujikawa brought this change] |
| 8008 | |
| 8009 | ngtcp2: remove remote_addr which is not used in a meaningful way |
| 8010 | |
| 8011 | Closes #8689 |
| 8012 | |
| 8013 | - [Tatsuhiro Tsujikawa brought this change] |
| 8014 | |
| 8015 | ngtcp2: enlarge H3_SEND_SIZE |
| 8016 | |
| 8017 | Make h3_SEND_SIZE larger because current value (20KiB) is too small |
| 8018 | for the high latency environment. |
| 8019 | |
| 8020 | Closes #8690 |
| 8021 | |
| 8022 | - [Tatsuhiro Tsujikawa brought this change] |
| 8023 | |
| 8024 | ngtcp2: fix HTTP/3 upload stall and avoid busy loop |
| 8025 | |
| 8026 | This commit fixes HTTP/3 upload stall if upload data is larger than |
| 8027 | H3_SEND_SIZE. Only check writability of socket if a stream is |
| 8028 | writable to avoid busy loop when QUIC flow control window is filled |
| 8029 | up, or upload buffer is full. |
| 8030 | |
| 8031 | Closes #8688 |
| 8032 | |
| 8033 | - [Nick Banks brought this change] |
| 8034 | |
| 8035 | msh3: add support for QUIC and HTTP/3 using msh3 |
| 8036 | |
| 8037 | Considered experimental, as the other HTTP/3 backends. |
| 8038 | |
| 8039 | Closes #8517 |
| 8040 | |
| 8041 | - TODO: "SFTP with SCP://" |
| 8042 | |
| 8043 | - GHA: move bearssl jobs over from zuul |
| 8044 | |
| 8045 | Closes #8684 |
| 8046 | |
| 8047 | - data/DISABLED: disable test 313 on bearssl builds |
| 8048 | |
| 8049 | Closes #8684 |
| 8050 | |
| 8051 | - runtests: add 'bearssl' as testable feature |
| 8052 | |
| 8053 | Closes #8684 |
| 8054 | |
| 8055 | - GHA: add openssl3 jobs moved over from zuul |
| 8056 | |
| 8057 | Closes #8683 |
| 8058 | |
| 8059 | - schannel: remove dead code that will never run |
| 8060 | |
| 8061 | As the condition can't ever evaluate true |
| 8062 | |
| 8063 | Reported-by: Andrey Alifanov |
| 8064 | Ref: #8675 |
| 8065 | Closes #8677 |
| 8066 | |
| 8067 | - connecache: remove duplicate connc->closure_handle check |
| 8068 | |
| 8069 | The superfluous extra check could cause analyzer false positives |
| 8070 | and doesn't serve any purpose. |
| 8071 | |
| 8072 | Closes #8676 |
| 8073 | |
| 8074 | - [MichaÅ Antoniak brought this change] |
| 8075 | |
| 8076 | mbedtls: remove server_fd from backend |
| 8077 | |
| 8078 | Closes #8682 |
| 8079 | |
| 8080 | - [Tatsuhiro Tsujikawa brought this change] |
| 8081 | |
| 8082 | ngtcp2: use token when detecting :status header field |
| 8083 | |
| 8084 | Closes #8679 |
| 8085 | |
| 8086 | - [Tatsuhiro Tsujikawa brought this change] |
| 8087 | |
| 8088 | ngtcp2: make curl 1ms faster |
| 8089 | |
| 8090 | Pass 0 for an already expired timer. |
| 8091 | |
| 8092 | Closes #8678 |
| 8093 | |
| 8094 | - [Tatsuhiro Tsujikawa brought this change] |
| 8095 | |
| 8096 | ngtcp2: fix QUIC_IDLE_TIMEOUT |
| 8097 | |
| 8098 | QUIC_IDLE_TIMEOUT should be of type ngtcp2_duration which is |
| 8099 | nanoseconds resolution. |
| 8100 | |
| 8101 | Closes #8678 |
| 8102 | |
| 8103 | - English: use American spelling consistently |
| 8104 | |
| 8105 | Authorization, Initialization, Organization etc. |
| 8106 | |
| 8107 | Closes #8673 |
| 8108 | |
| 8109 | Daniel Gustafsson (5 Apr 2022) |
| 8110 | - [Sascha Zengler brought this change] |
| 8111 | |
| 8112 | BUGS: Fix incorrect punctuation |
| 8113 | |
| 8114 | Closes #8672 |
| 8115 | Reviewed-by: Daniel Gustafsson <daniel@yesql.se> |
| 8116 | |
| 8117 | Daniel Stenberg (4 Apr 2022) |
| 8118 | - tool_listhelp.c: uppercase URL |
| 8119 | |
| 8120 | - RELEASE-NOTES: synced |
| 8121 | |
| 8122 | - http: streamclose "already downloaded" |
| 8123 | |
| 8124 | Instead of connclose()ing, since when HTTP/2 is used it doesn't need to |
| 8125 | close the connection as stopping the current transfer is enough. |
| 8126 | |
| 8127 | Reported-by: Evangelos Foutras |
| 8128 | Closes #8665 |
| 8129 | |
| 8130 | Jay Satiro (1 Apr 2022) |
| 8131 | - ftp: fix error message for partial file upload |
| 8132 | |
| 8133 | - Show the count of bytes written on partial file upload. |
| 8134 | |
| 8135 | Prior to this change the error message mistakenly showed the count of |
| 8136 | bytes read, not written. |
| 8137 | |
| 8138 | Bug: https://github.com/curl/curl/discussions/8637 |
| 8139 | Reported-by: Taras Kushnir |
| 8140 | |
| 8141 | Closes https://github.com/curl/curl/pull/8649 |
| 8142 | |
| 8143 | Daniel Stenberg (1 Apr 2022) |
| 8144 | - http: correct the header error message to say colon |
| 8145 | |
| 8146 | Not semicolon |
| 8147 | |
| 8148 | Reported-by: Gisle Vanem |
| 8149 | Ref: #8666 |
| 8150 | Closes #8667 |
| 8151 | |
| 8152 | - lib: #ifdef on USE_HTTP2 better |
| 8153 | |
| 8154 | ... as nghttp2 might not be the library that provides HTTP/2 support. |
| 8155 | |
| 8156 | Closes #8661 |
| 8157 | |
| 8158 | - [MichaÅ Antoniak brought this change] |
| 8159 | |
| 8160 | mbedtls: remove 'protocols' array from backend when ALPN is not used |
| 8161 | |
| 8162 | Closes #8663 |
| 8163 | |
| 8164 | - http2: RST the stream if we stop it on our own will |
| 8165 | |
| 8166 | For the "simulated 304" case the done-call isn't considered "premature" |
| 8167 | but since the server didn't close the stream it needs to be reset to |
| 8168 | stop delivering data. |
| 8169 | |
| 8170 | Closes #8664 |
| 8171 | |
| 8172 | - http: close the stream (not connection) on time condition abort |
| 8173 | |
| 8174 | Closes #8664 |
| 8175 | |
| 8176 | - http2: handle DONE called for the paused stream |
| 8177 | |
| 8178 | As it could otherwise stall all streams on the connection |
| 8179 | |
| 8180 | Reported-by: Evangelos Foutras |
| 8181 | Fixes #8626 |
| 8182 | Closes #8664 |
| 8183 | |
| 8184 | - tls: make mbedtls and NSS check for h2, not nghttp2 |
| 8185 | |
| 8186 | This makes them able to also negotiate HTTP/2 even when built to use |
| 8187 | hyper for h2. |
| 8188 | |
| 8189 | Closes #8656 |
| 8190 | |
| 8191 | - tests/libtest/lib670.c: fixup the copyright year range |
| 8192 | |
| 8193 | follow-up to b54e18640ea4b7 |
| 8194 | |
| 8195 | - [Leandro Coutinho brought this change] |
| 8196 | |
| 8197 | lib670: avoid double check result |
| 8198 | |
| 8199 | Closes #8660 |
| 8200 | |
| 8201 | - vtls: use a generic "ALPN, server accepted" message |
| 8202 | |
| 8203 | Closes #8657 |
| 8204 | |
| 8205 | - vtls: use a backend standard message for "ALPN: offers %s" |
| 8206 | |
| 8207 | I call it VTLS_INFOF_ALPN_OFFER_1STR, the '1str' meaning that the |
| 8208 | infof() call also needs a string argument: the ALPN ID. |
| 8209 | |
| 8210 | Closes #8657 |
| 8211 | |
| 8212 | - [Christian Schmitz brought this change] |
| 8213 | |
| 8214 | strcase.h: add comment about the return code |
| 8215 | |
| 8216 | Tool often we run into expecting this to work like strcmp, but it |
| 8217 | returns 1 instead of 0 for match. |
| 8218 | |
| 8219 | Closes #8658 |
| 8220 | |
| 8221 | - vtls: provide a unified APLN-disagree string for all backends |
| 8222 | |
| 8223 | Also rephrase to make it sound less dangerous: |
| 8224 | |
| 8225 | "ALPN: server did not agree on a protocol. Uses default." |
| 8226 | |
| 8227 | Reported-by: Nick Coghlan |
| 8228 | Fixes #8643 |
| 8229 | Closes #8651 |
| 8230 | |
| 8231 | - projects/README: converted to markdown |
| 8232 | |
| 8233 | Closes #8652 |
| 8234 | |
| 8235 | - misc: spelling fixes |
| 8236 | |
| 8237 | Mostly in comments but also in the -w documentation for headers_json. |
| 8238 | |
| 8239 | Closes #8647 |
| 8240 | |
| 8241 | - KNOW_BUGS: HTTP3/Transfer closed with n bytes remaining to read |
| 8242 | |
| 8243 | "HTTP/3 does not support client certs" considered fixed, at least with |
| 8244 | the ngtcp2 backend. |
| 8245 | |
| 8246 | Closes #8523 |
| 8247 | |
| 8248 | - CURLOPT_PREQUOTE.3: only works for FTP file transfers, not dirs |
| 8249 | |
| 8250 | Also add to quote.d. Add to TODO as something to add in a future. |
| 8251 | |
| 8252 | Reported-by: anon00000000 on github |
| 8253 | Closes #8602 |
| 8254 | Closes #8648 |
| 8255 | |
| 8256 | - RELEASE-NOTES: synced |
| 8257 | |
| 8258 | - pop3/smtp: return *WEIRD_SERVER_REPLY when not understood |
| 8259 | |
| 8260 | This leaves the CURLE_RECV_ERROR error code for explicit failure to |
| 8261 | receive network data and allows users to better separate the problems. |
| 8262 | |
| 8263 | Ref #8356 |
| 8264 | Reported-by: Rianov Viacheslav |
| 8265 | Closes #8506 |
| 8266 | |
| 8267 | - docs: lots of minor language polish |
| 8268 | |
| 8269 | Mostly based on recent language decisions from "everything curl": |
| 8270 | |
| 8271 | - remove contractions (isn't => is not) |
| 8272 | - *an* HTTP (consistency) |
| 8273 | - runtime (no hyphen) |
| 8274 | - backend (no hyphen) |
| 8275 | - URL is uppercase |
| 8276 | |
| 8277 | Closes #8646 |
| 8278 | |
| 8279 | Jay Satiro (29 Mar 2022) |
| 8280 | - projects: Update VC version names for VS2017, VS2022 |
| 8281 | |
| 8282 | - Rename VC15 -> VC14.10, VC17 -> VC14.30. |
| 8283 | |
| 8284 | The projects directory that holds the pre-generated Visual Studio |
| 8285 | project files uses VC<ver> to indicate the MSVC version. At some point |
| 8286 | support for Visual Studio 2017 (Visual Studio version 15 which uses MSVC |
| 8287 | 14.10) was added as VC15. Visual Studio 2022 (Visual Studio version 17 |
| 8288 | which uses MSVC 14.30) project files were recently added and followed |
| 8289 | that same format using VC17. |
| 8290 | |
| 8291 | There is no such MSVC version (yet) as VC15 or VC17. |
| 8292 | |
| 8293 | For VS 2017 for example, the name we use is correct as either VS17, |
| 8294 | VS2017, VC14.10. I opted for the latter since we use VC for earlier |
| 8295 | versions (eg VC10, VC12, etc). |
| 8296 | |
| 8297 | Ref: https://github.com/curl/curl/pull/8438#issuecomment-1037070192 |
| 8298 | |
| 8299 | Closes https://github.com/curl/curl/pull/8447 |
| 8300 | |
| 8301 | Daniel Stenberg (29 Mar 2022) |
| 8302 | - mqtt: better handling of TCP disconnect mid-message |
| 8303 | |
| 8304 | Reported-by: Jenny Heino |
| 8305 | Bug: https://hackerone.com/reports/1521610 |
| 8306 | Closes #8644 |
| 8307 | |
| 8308 | - CURLOPT_DISALLOW_USERNAME_IN_URL.3: use uppercase URL |
| 8309 | |
| 8310 | - [Ian Blanes brought this change] |
| 8311 | |
| 8312 | docs/DYNBUF: clarify documentation for Curl_dyn_ptr and Curl_dyn_uptr |
| 8313 | |
| 8314 | Closes #8606 |
| 8315 | |
| 8316 | - [Ian Blanes brought this change] |
| 8317 | |
| 8318 | curl: fix segmentation fault for empty output file names. |
| 8319 | |
| 8320 | Function glob_match_url set *result to NULL when called with filename = |
| 8321 | "", producing an indirect NULL pointer dereference. |
| 8322 | |
| 8323 | Closes #8606 |
| 8324 | |
| 8325 | - TODO: Read keys from ~/.ssh/id_ecdsa, id_ed25519 |
| 8326 | |
| 8327 | It would be nice to expand the list of key locations curl uses for the |
| 8328 | newer key types supported by libssh2. |
| 8329 | |
| 8330 | Closes #8586 |
| 8331 | |
| 8332 | - ngtcp2: update to work after recent ngtcp2 updates |
| 8333 | |
| 8334 | Assisted-by: Tatsuhiro Tsujikawa |
| 8335 | Reported-by: jurisuk on github |
| 8336 | Fixes #8638 |
| 8337 | Closes #8639 |
| 8338 | |
| 8339 | - [Farzin brought this change] |
| 8340 | |
| 8341 | CURLOPT_PROGRESSFUNCTION.3: fix typo in example |
| 8342 | |
| 8343 | Closes #8636 |
| 8344 | |
| 8345 | - curl/header_json: output the header names in lowercase |
| 8346 | |
| 8347 | To better allow json[āheaderā]. |
| 8348 | |
| 8349 | Reported-by: Peter Korsgaard |
| 8350 | Bug: https://daniel.haxx.se/blog/2022/03/24/easier-header-picking-with-curl/comment-page-1/#comment-25878 |
| 8351 | Closes #8633 |
| 8352 | |
| 8353 | - RELEASE-NOTES: synced |
| 8354 | |
| 8355 | - headers.h: make Curl_headers_push() be CURLE_OK when not built |
| 8356 | |
| 8357 | ... to avoid errors when the function isn't there. |
| 8358 | |
| 8359 | Reported-by: Marcel Raad |
| 8360 | Fixes #8627 |
| 8361 | Closes #8628 |
| 8362 | |
| 8363 | - scripts: move three scripts from lib/ to scripts/ |
| 8364 | |
| 8365 | Move checksrc.pl, firefox-db2pem.sh and mk-ca-bundle.pl since they don't |
| 8366 | particularly belong in lib/ |
| 8367 | |
| 8368 | Also created an EXTRA_DIST= in scripts/Makefile.am instead of specifying |
| 8369 | those files in the root Makefile.am |
| 8370 | |
| 8371 | Closes #8625 |
| 8372 | |
| 8373 | Marc Hoersken (23 Mar 2022) |
| 8374 | - lib/warnless.[ch]: only check for WIN32 and ignore _WIN32 |
| 8375 | |
| 8376 | curl_setup.h automatically defines WIN32 if just _WIN32 is defined. |
| 8377 | |
| 8378 | Therefore make sure curl_setup.h is included through warnless.h. |
| 8379 | |
| 8380 | Reviewed-by: Daniel Stenberg |
| 8381 | Reviewed-by: Jay Satiro |
| 8382 | |
| 8383 | Closes #8594 |
| 8384 | |
| 8385 | - tests/server/util.h: align WIN32 condition with util.c |
| 8386 | |
| 8387 | There is no need to test for both _WIN32 and WIN32 as curl_setup.h |
| 8388 | automatically defines the later if the first one is defined. |
| 8389 | |
| 8390 | Also tests/server/util.c is only checking for WIN32 arouund the |
| 8391 | implementation of win32_perror, so just defining _WIN32 |
| 8392 | would not be sufficient for a successful compilation. |
| 8393 | |
| 8394 | Reviewed-by: Daniel Stenberg |
| 8395 | Reviewed-by: Jay Satiro |
| 8396 | |
| 8397 | Closes #8594 |
| 8398 | |
| 8399 | Daniel Stenberg (22 Mar 2022) |
| 8400 | - [Philip Heiduck brought this change] |
| 8401 | |
| 8402 | firefox-db2pem.sh: make the shell script safer |
| 8403 | |
| 8404 | Reported by lift |
| 8405 | |
| 8406 | Closes #8616 |
| 8407 | |
| 8408 | Jay Satiro (22 Mar 2022) |
| 8409 | - gtls: fix build for disabled TLS-SRP |
| 8410 | |
| 8411 | Prior to this change if, at build time, the GnuTLS backend was found to |
| 8412 | have TLS-SRP support (HAVE_GNUTLS_SRP) but TLS-SRP was disabled in curl |
| 8413 | via --disable-tls-srp (!USE_TLS_SRP) then a build error would occur. |
| 8414 | |
| 8415 | Bug: https://curl.se/mail/lib-2022-03/0046.html |
| 8416 | Reported-by: Robert Brose |
| 8417 | |
| 8418 | Closes https://github.com/curl/curl/pull/8604 |
| 8419 | |
| 8420 | - winbuild: Add a Visual Studio example to the README |
| 8421 | |
| 8422 | - Add an example that explains in detail how the user can add libcurl to |
| 8423 | their Visual Studio project. |
| 8424 | |
| 8425 | Ref: https://github.com/curl/curl/issues/8591 |
| 8426 | |
| 8427 | Closes https://github.com/curl/curl/pull/8592 |
| 8428 | |
| 8429 | - docs/opts: Mention Schannel client cert type is P12 |
| 8430 | |
| 8431 | Schannel backend code behaves same as Secure Transport, it expects a P12 |
| 8432 | certificate file or the name of a certificate already in the user's OS |
| 8433 | key store. Also, both backends ignore CURLOPT_SSLKEY (tool: --key) |
| 8434 | because they expect the private key to already be available from the |
| 8435 | keystore or P12 certificate. |
| 8436 | |
| 8437 | Ref: https://github.com/curl/curl/discussions/8581#discussioncomment-2337260 |
| 8438 | |
| 8439 | Closes https://github.com/curl/curl/pull/8587 |
| 8440 | |
| 8441 | Daniel Stenberg (22 Mar 2022) |
| 8442 | - lib1945: fix compiler warning 4706 on MSVC |
| 8443 | |
| 8444 | Follow-up from d1e4a677340c |
| 8445 | |
| 8446 | Closes #8623 |
| 8447 | |
| 8448 | - [Philip Heiduck brought this change] |
| 8449 | |
| 8450 | ci/event-based.yml: improve impacket install |
| 8451 | |
| 8452 | skip python3-pip |
| 8453 | install impacket with library module |
| 8454 | |
| 8455 | Closes #8621 |
| 8456 | |
| 8457 | - test1459: disable for oldlibssh |
| 8458 | |
| 8459 | This test with libssh 0.9.3 works fine on github but fails on circleci. |
| 8460 | Might as well disable this test for oldlibssh installations. |
| 8461 | |
| 8462 | Closes #8622 |
| 8463 | |
| 8464 | - test1135: sync with recent API updates |
| 8465 | |
| 8466 | This test verifies that the order of functions in public headers remain |
| 8467 | the same but hasn't been updated to care for recently added header |
| 8468 | files. The order is important for some few platforms - or VERSIONINFO |
| 8469 | needs to updated. |
| 8470 | |
| 8471 | This fix also updates VERSIONINFO to be sure. |
| 8472 | |
| 8473 | Closes #8620 |
| 8474 | |
| 8475 | - curl_easy_nextheader.3: fix two typos |
| 8476 | |
| 8477 | Reported-by: Timothe Litt |
| 8478 | Bug: https://curl.se/mail/lib-2022-03/0060.html |
| 8479 | |
| 8480 | - options: remove mistaken space before paren in prototype |
| 8481 | |
| 8482 | - cirrus: add --enable-headers-api for some windows builds |
| 8483 | |
| 8484 | - GHA: --enable-headers-api in all workflows |
| 8485 | |
| 8486 | - lib: make the headers API depend on --enable-headers-api |
| 8487 | |
| 8488 | - configure: add --enable-headers-api to enable the headers API |
| 8489 | |
| 8490 | Defaults to disabled while labeled EXPERIMENTAL. |
| 8491 | |
| 8492 | Make all the headers API tests require 'headers-api' to run. |
| 8493 | |
| 8494 | - test1671: verify -w '%{header_json} |
| 8495 | |
| 8496 | - test1670: verify -w %header{} |
| 8497 | |
| 8498 | - curl: add %{header_json} support in -w handling |
| 8499 | |
| 8500 | Outputs all response headers as a JSON object. |
| 8501 | |
| 8502 | - curl: add %header{name} support in -w handling |
| 8503 | |
| 8504 | Outputs the response header 'name' |
| 8505 | |
| 8506 | - header api: add curl_easy_header and curl_easy_nextheader |
| 8507 | |
| 8508 | Add test 1940 to 1946 to verify. |
| 8509 | |
| 8510 | Closes #8593 |
| 8511 | |
| 8512 | - test1459: remove the different exit code for oldlibssh |
| 8513 | |
| 8514 | When using libssh/0.9.3/openssl/zlib, we seem to be getting the "right" |
| 8515 | error code. |
| 8516 | |
| 8517 | Closes #8490 |
| 8518 | |
| 8519 | - libssh: unstick SFTP transfers when done event-based |
| 8520 | |
| 8521 | Test 604 and 606 (at least). |
| 8522 | |
| 8523 | Closes #8490 |
| 8524 | |
| 8525 | - gha: move the event-based test over from Zuul |
| 8526 | |
| 8527 | Switched libssh2 to libssh |
| 8528 | |
| 8529 | Closes #8490 |
| 8530 | |
| 8531 | - RELEASE-NOTES: synced |
| 8532 | |
| 8533 | - http: return error on colon-less HTTP headers |
| 8534 | |
| 8535 | It's a protocol violation and accepting them leads to no good. |
| 8536 | |
| 8537 | Add test case 398 to verify |
| 8538 | |
| 8539 | Closes #8610 |
| 8540 | |
| 8541 | - test718: edited slightly to return better HTTP |
| 8542 | |
| 8543 | Since hyper is picky and won't play ball otherwise. |
| 8544 | |
| 8545 | Bug: https://github.com/hyperium/hyper/issues/2783 |
| 8546 | Reported-by: Daniel Valenzuela |
| 8547 | Closes #8614 |
| 8548 | |
| 8549 | - hyper: no h2c support |
| 8550 | |
| 8551 | Make tests require h2c feature present to run, and only set h2c if |
| 8552 | nghttp2 is used in the build. Hyper does not support it. |
| 8553 | |
| 8554 | Remove those tests from DISABLED |
| 8555 | |
| 8556 | Fixes #8605 |
| 8557 | Closes #8613 |
| 8558 | |
| 8559 | - configure: bump the copyright year range int the generated output |
| 8560 | |
| 8561 | - [Andreas Falkenhahn brought this change] |
| 8562 | |
| 8563 | BINDINGS.md: add Hollywood binding |
| 8564 | |
| 8565 | Closes #8609 |
| 8566 | |
| 8567 | - HISTORY: add some 2022 data |
| 8568 | |
| 8569 | - scripts/copyright.pl: ignore the new mlc_config.json file |
| 8570 | |
| 8571 | - [Philip Heiduck brought this change] |
| 8572 | |
| 8573 | mlc_config.json: add file to ignore known troublesome URLs |
| 8574 | |
| 8575 | This is the config file for the CI markdown link checker and lets us |
| 8576 | filter URLs that are known to cause problems. Like |
| 8577 | https://curl.zuul.vexxhost.dev/ for now. |
| 8578 | |
| 8579 | Closes #8597 |
| 8580 | |
| 8581 | - [Philip Heiduck brought this change] |
| 8582 | |
| 8583 | winbuild/README.md: fixup dead link |
| 8584 | |
| 8585 | Closes #8597 |
| 8586 | |
| 8587 | Jay Satiro (18 Mar 2022) |
| 8588 | - rtsp: don't let CSeq error override earlier errors |
| 8589 | |
| 8590 | - When done, if an error has already occurred then don't check the |
| 8591 | sequence numbers for mismatch. |
| 8592 | |
| 8593 | A sequence number may not have been received if an error occurred. |
| 8594 | |
| 8595 | Prior to this change a sequence mismatch error would override earlier |
| 8596 | errors. For example, a server that returns nothing would cause error |
| 8597 | CURLE_GOT_NOTHING in Curl_http_done which was then overridden by |
| 8598 | CURLE_RTSP_CSEQ_ERROR in rtsp_done. |
| 8599 | |
| 8600 | Closes https://github.com/curl/curl/pull/8525 |
| 8601 | |
| 8602 | - lib: fix some misuse of curlx_convert_wchar_to_UTF8 |
| 8603 | |
| 8604 | curlx_convert_wchar_to_UTF8 must be freed by curlx_unicodefree, but |
| 8605 | prior to this change some uses mistakenly called free. |
| 8606 | |
| 8607 | I've reviewed all other uses of curlx_convert_wchar_to_UTF8 and |
| 8608 | curlx_convert_UTF8_to_wchar. |
| 8609 | |
| 8610 | Ref: https://github.com/curl/curl/commit/1d5d0ae |
| 8611 | |
| 8612 | Closes https://github.com/curl/curl/pull/8521 |
| 8613 | |
| 8614 | - mk-ca-bundle.pl: Use stricter logic to process the certificates |
| 8615 | |
| 8616 | .. and bump version to 1.29. |
| 8617 | |
| 8618 | This change makes the script properly ignore unknown blocks and |
| 8619 | otherwise fail when Mozilla changes the certdata format in ways we |
| 8620 | don't expect. Though this is less flexible behavior it makes it far less |
| 8621 | likely that an invalid certificate can slip through. |
| 8622 | |
| 8623 | Prior to this change the state machine did not always properly reset, |
| 8624 | and it was possible that a certificate marked as invalid could then |
| 8625 | later be marked as valid when there was conflicting trust info or |
| 8626 | an unknown block was erroneously processed as part of the certificate. |
| 8627 | |
| 8628 | Ref: https://github.com/curl/curl/pull/7801#pullrequestreview-768384569 |
| 8629 | |
| 8630 | Closes https://github.com/curl/curl/pull/8411 |
| 8631 | |
| 8632 | Marcel Raad (17 Mar 2022) |
| 8633 | - test375: fix line endings on Windows |
| 8634 | |
| 8635 | Closes https://github.com/curl/curl/pull/8599 |
| 8636 | |
| 8637 | Daniel Stenberg (17 Mar 2022) |
| 8638 | - http: reject header contents with nul bytes |
| 8639 | |
| 8640 | They are not allowed by the protocol and allowing them risk that curl |
| 8641 | misbehaves somewhere where C functions are used but won't work on the |
| 8642 | full contents. Further, they are not supported by hyper and they cause |
| 8643 | problems for the new coming headers API work. |
| 8644 | |
| 8645 | Updated test 262 to verify and enabled it for hyper as well |
| 8646 | |
| 8647 | Closes #8601 |
| 8648 | |
| 8649 | - [Philip Heiduck brought this change] |
| 8650 | |
| 8651 | CI: Do not use buildconf. Instead, just use: autoreconf -fi |
| 8652 | |
| 8653 | Closes #8596 |
| 8654 | |
| 8655 | - RELEASE-NOTES: synced |
| 8656 | |
| 8657 | Jay Satiro (14 Mar 2022) |
| 8658 | - libssh: Improve fix for missing SSH_S_ stat macros |
| 8659 | |
| 8660 | - If building libcurl against an old libssh version missing SSH_S_IFMT |
| 8661 | and SSH_S_IFLNK then use the values from a supported version. |
| 8662 | |
| 8663 | Prior to this change if libssh did not define SSH_S_IFMT and SSH_S_IFLNK |
| 8664 | then S_IFMT and S_IFLNK, respectively, were used instead. The problem |
| 8665 | with that is the user's S_ stat macros don't have the same values across |
| 8666 | platforms. For example Windows has values different from Linux. |
| 8667 | |
| 8668 | Follow-up to 7b0fd39. |
| 8669 | |
| 8670 | Ref: https://github.com/curl/curl/pull/8511#discussion_r815292391 |
| 8671 | Ref: https://github.com/curl/curl/pull/8574 |
| 8672 | |
| 8673 | Closes https://github.com/curl/curl/pull/8588 |
| 8674 | |
| 8675 | Marc Hoersken (13 Mar 2022) |
| 8676 | - tool and tests: force flush of all buffers at end of program |
| 8677 | |
| 8678 | On Windows data can be lost in buffers in case of abnormal program |
| 8679 | termination, especially in process chains as seen due to flaky tests. |
| 8680 | Therefore flushing all buffers manually should avoid this data loss. |
| 8681 | |
| 8682 | In the curl tool we play the safe game by only flushing write buffers, |
| 8683 | but in the testsuite where we manage all buffers, we flush everything. |
| 8684 | |
| 8685 | This should drastically reduce Windows CI and testsuite flakiness. |
| 8686 | |
| 8687 | Reviewed-by: Daniel Stenberg |
| 8688 | |
| 8689 | Supersedes #7833 and #6064 |
| 8690 | Closes #8516 |
| 8691 | |
| 8692 | Daniel Stenberg (12 Mar 2022) |
| 8693 | - [Jan Venekamp brought this change] |
| 8694 | |
| 8695 | BearSSL: add CURLOPT_SSL_CTX_FUNCTION support |
| 8696 | |
| 8697 | Closes #8478 |
| 8698 | |
| 8699 | - [Jan Venekamp brought this change] |
| 8700 | |
| 8701 | BearSSL: add CURLOPT_SSL_CIPHER_LIST support |
| 8702 | |
| 8703 | Closes #8477 |
| 8704 | |
| 8705 | Dan Fandrich (11 Mar 2022) |
| 8706 | - tool_cb_hdr: Turn the Location: into a terminal hyperlink |
| 8707 | |
| 8708 | This turns even relative URLs into clickable hyperlinks in a supported |
| 8709 | terminal when --styled-output is enabled. Many terminals already turn |
| 8710 | URLs into clickable links but there is not enough information in a |
| 8711 | relative URL to do this automatically otherwise. |
| 8712 | |
| 8713 | - keepalive-time.d: It takes many probes to detect brokenness |
| 8714 | |
| 8715 | Daniel Stenberg (11 Mar 2022) |
| 8716 | - [HexTheDragon brought this change] |
| 8717 | |
| 8718 | curl: add --no-clobber |
| 8719 | |
| 8720 | Does not overwrite output files if they already exist |
| 8721 | |
| 8722 | Closes #7708 |
| 8723 | Co-authored-by: Daniel Stenberg |
| 8724 | |
| 8725 | - RELEASE-NOTES: synced |
| 8726 | |
| 8727 | also bump next pending version to become 7.83.0 |
| 8728 | |
| 8729 | - [Jean-Philippe Menil brought this change] |
| 8730 | |
| 8731 | openssl: check SSL_get_peer_cert_chain return value |
| 8732 | |
| 8733 | Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com> |
| 8734 | Closes #8579 |
| 8735 | |
| 8736 | - [Jay Satiro brought this change] |
| 8737 | |
| 8738 | mk-ca-bundle.vbs: delete this script in favor of mk-ca-bundle.pl |
| 8739 | |
| 8740 | mk-ca-bundle.vbs is a Windows-specific script for Mozilla certificate |
| 8741 | extraction, similar to mk-ca-bundle.pl which runs on any platform. The |
| 8742 | vbs version has not been maintained while the perl version has been |
| 8743 | maintained with improvements and security fixes. I don't think it's |
| 8744 | worth the work to maintain both versions. Windows users should be able |
| 8745 | to use mk-ca-bundle.pl without any problems, as long as they have perl. |
| 8746 | |
| 8747 | Closes #8412 |
| 8748 | |
| 8749 | - CURLSHOPT_UNLOCKFUNC.3: fix the callback prototype |
| 8750 | |
| 8751 | Copy and paste error |
| 8752 | |
| 8753 | Reported-by: Francisco Olarte |
| 8754 | Fixes #8573 |
| 8755 | Closes #8577 |
| 8756 | |
| 8757 | - remove-on-error.d: typo |
| 8758 | |
| 8759 | Reported-by: Colin Leroy |
| 8760 | Bug: https://github.com/curl/curl/pull/8503#pullrequestreview-906520081 |
| 8761 | |
| 8762 | - curl: add --remove-on-error |
| 8763 | |
| 8764 | If a transfer returns an error, using this option makes curl remove the |
| 8765 | leftover downloded (partial) local file before exiting. |
| 8766 | |
| 8767 | Added test 376 to verify |
| 8768 | |
| 8769 | Closes #8503 |
| 8770 | |
| 8771 | - libssh: fix build with old libssh versions |
| 8772 | |
| 8773 | ... that don't have the SSH_S_* defines. Spotted on a machine using |
| 8774 | libssh 0.7.3 |
| 8775 | |
| 8776 | Closes #8574 |
| 8777 | |
| 8778 | - hyper: fix status_line() return code |
| 8779 | |
| 8780 | Detected while working on #7708 that happened to trigger an error here |
| 8781 | with a new test case. |
| 8782 | |
| 8783 | Closes #8572 |
| 8784 | |
| 8785 | - [Alejandro R. SedeƱo brought this change] |
| 8786 | |
| 8787 | configure.ac: move -pthread CFLAGS setting back where it used to be |
| 8788 | |
| 8789 | The fix for #8276 proposed in #8374 set `CFLAGS="$CFLAGS -pthead"` |
| 8790 | earlier than it used to be set, applying it in cases where it should not |
| 8791 | have been applied. |
| 8792 | |
| 8793 | This moves the AIX XLC check to a new `case $host in` block inside of |
| 8794 | the `if test "$USE_THREADS_POSIX" != "1"` block, where `CFLAGS="$CFLAGS |
| 8795 | -pthead"` used to happen. |
| 8796 | |
| 8797 | Fixes #8541 |
| 8798 | Closes #8542 |
| 8799 | |
| 8800 | - [Tatsuhiro Tsujikawa brought this change] |
| 8801 | |
| 8802 | ngtcp2: add client certificate authentication for OpenSSL |
| 8803 | |
| 8804 | Closes #8522 |
| 8805 | |
| 8806 | - tool_operate: fix a scan-build warning |
| 8807 | |
| 8808 | ... and avoid the temp storing of the return code in a diff variable. |
| 8809 | |
| 8810 | Closes #8565 |
| 8811 | |
| 8812 | - test375: verify that --proxy errors out if proxy is disabled in the build |
| 8813 | |
| 8814 | Closes #8565 |
| 8815 | |
| 8816 | - curl: error out when options need features not present in libcurl |
| 8817 | |
| 8818 | Trying to use a proxy when libcurl was built with proxy support disabled |
| 8819 | should make curl error out properly. |
| 8820 | |
| 8821 | Remove knowledge of disabled features from the tool code and instead |
| 8822 | make it properly respond to what libcurl returns. Update all tests to |
| 8823 | properly require the necessary features to be present/absent so that the |
| 8824 | test suite can still be run even with libcurl builds with disabled |
| 8825 | features. |
| 8826 | |
| 8827 | Ref: https://curl.se/mail/archive-2022-03/0013.html |
| 8828 | Closes #8565 |
| 8829 | |
| 8830 | - ngtcp2: disconnect the QUIC connection proper |
| 8831 | |
| 8832 | Reported-by: mehatzri on github |
| 8833 | Reviewed-by: Tatsuhiro Tsujikawa |
| 8834 | Fixes #8534 |
| 8835 | closes #8569 |
| 8836 | |
| 8837 | Dan Fandrich (9 Mar 2022) |
| 8838 | - test386: Fix an incorrect test markup tag |
| 8839 | |
| 8840 | Daniel Stenberg (9 Mar 2022) |
| 8841 | - [Don J Olmstead brought this change] |
| 8842 | |
| 8843 | nonblock: restore setsockopt method to curlx_nonblock |
| 8844 | |
| 8845 | The implementation using setsockopt was removed when BeOS support was |
| 8846 | purged. However this functionality wasn't BeOS specific, it is still |
| 8847 | used by for example Orbis OS (Playstation 4/5 OS). |
| 8848 | |
| 8849 | Closes #8562 |
| 8850 | |
| 8851 | - openssl: fix CN check error code |
| 8852 | |
| 8853 | Due to a missing 'else' this returns error too easily. |
| 8854 | |
| 8855 | Regressed in: d15692ebb |
| 8856 | |
| 8857 | Reported-by: Kristoffer Gleditsch |
| 8858 | Fixes #8559 |
| 8859 | Closes #8560 |
| 8860 | |
| 8861 | - [Frank Meier brought this change] |
| 8862 | |
| 8863 | connect: make Curl_getconnectinfo work with conn cache from share handle |
| 8864 | |
| 8865 | Closes #8524 |