blob: b03c6666438dba6028c3525f4138c0810db7f029 [file] [log] [blame]
Elliott Hughes82be86d2017-09-20 17:00:17 -07001 _ _ ____ _
2 ___| | | | _ \| |
3 / __| | | | |_) | |
4 | (__| |_| | _ <| |___
5 \___|\___/|_| \_\_____|
Lucas Eckels9bd90e62012-08-06 15:07:02 -07006
Elliott Hughes82be86d2017-09-20 17:00:17 -07007 Changelog
Lucas Eckels9bd90e62012-08-06 15:07:02 -07008
Haibo Huang51d9d882019-02-06 01:36:06 -08009Version 7.64.0 (6 Feb 2019)
10
11Daniel Stenberg (6 Feb 2019)
12- RELEASE-NOTES: 7.64.0
13
14- RELEASE-PROCEDURE: update the release calendar
15
16- THANKS: 7.64.0 status
17
18Daniel Gustafsson (5 Feb 2019)
19- ROADMAP: remove already performed item
20
21 Commit 7a09b52c98ac8d840a8a9907b1a1d9a9e684bcf5 introduced support
22 for the draft-ietf-httpbis-cookie-alone-01 cookie draft, and while
23 the entry was removed from the TODO it was mistakenly left here.
24 Fix by removing and rewording the entry slightly.
25
26 Closes #3530
27 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
28
29- [Etienne Simard brought this change]
30
31 CONTRIBUTE.md: Fix grammatical errors
32
33 Fix grammatical errors making the document read better. Also fixes
34 a typo.
35
36 Closes #3525
37 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
38
39Daniel Stenberg (4 Feb 2019)
40- [Julian Z brought this change]
41
42 docs: use $(INSTALL_DATA) to install man page
43
44 Fixes #3518
45 Closes #3522
46
47Jay Satiro (4 Feb 2019)
48- [Ladar Levison brought this change]
49
50 runtests.pl: Fix perl call to include srcdir
51
52 - Use explicit include opt for perl calls.
53
54 Prior to this change some scripts couldn't find their dependencies.
55
56 At the top, perl is called using with the "-Isrcdir" option, and it
57 works:
58
59 https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L183
60
61 But on line 3868, that option is omitted. This caused problems for me,
62 as the symbol-scan.pl script in particular couldn't find its
63 dependencies properly:
64
65 https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L3868
66
67 This patch fixes that oversight by making calls to perl sub-shells
68 uniform.
69
70 Closes https://github.com/curl/curl/pull/3496
71
72Daniel Stenberg (4 Feb 2019)
73- [Daniel Gustafsson brought this change]
74
75 smtp: avoid risk of buffer overflow in strtol
76
77 If the incoming len 5, but the buffer does not have a termination
78 after 5 bytes, the strtol() call may keep reading through the line
79 buffer until is exceeds its boundary. Fix by ensuring that we are
80 using a bounded read with a temporary buffer on the stack.
81
82 Bug: https://curl.haxx.se/docs/CVE-2019-3823.html
83 Reported-by: Brian Carpenter (Geeknik Labs)
84 CVE-2019-3823
85
86- ntlm: fix *_type3_message size check to avoid buffer overflow
87
88 Bug: https://curl.haxx.se/docs/CVE-2019-3822.html
89 Reported-by: Wenxiang Qian
90 CVE-2019-3822
91
92- NTLM: fix size check condition for type2 received data
93
94 Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
95 Reported-by: Wenxiang Qian
96 CVE-2018-16890
97
98Marcel Raad (1 Feb 2019)
99- [georgeok brought this change]
100
101 spnego_sspi: add support for channel binding
102
103 Attempt to add support for Secure Channel binding when negotiate
104 authentication is used. The problem to solve is that by default IIS
105 accepts channel binding and curl doesn't utilise them. The result was a
106 401 response. Scope affects only the Schannel(winssl)-SSPI combination.
107
108 Fixes https://github.com/curl/curl/issues/3503
109 Closes https://github.com/curl/curl/pull/3509
110
111Daniel Stenberg (1 Feb 2019)
112- RELEASE-NOTES: synced
113
114- schannel: stop calling it "winssl"
115
116 Stick to "Schannel" everywhere. The configure option --with-winssl is
117 kept to allow existing builds to work but --with-schannel is added as an
118 alias.
119
120 Closes #3504
121
122- multi: set the EXPIRE_*TIMEOUT timers at TIMER_STARTSINGLE time
123
124 To make sure Curl_timeleft() also thinks the timeout has been reached
125 when one of the EXPIRE_*TIMEOUTs expires.
126
127 Bug: https://curl.haxx.se/mail/lib-2019-01/0073.html
128 Reported-by: Zhao Yisha
129 Closes #3501
130
131- [John Marshall brought this change]
132
133 doc: use meaningless port number in CURLOPT_LOCALPORT example
134
135 Use an ephemeral port number here; previously the example had 8080
136 which could be confusing as the common web server port number might
137 be misinterpreted as suggesting this option affects the remote port.
138
139 URL: https://curl.haxx.se/mail/lib-2019-01/0084.html
140 Closes #3513
141
142GitHub (29 Jan 2019)
143- [Gisle Vanem brought this change]
144
145 Escape the '\'
146
147 A backslash should be escaped in Roff / Troff.
148
149Jay Satiro (29 Jan 2019)
150- TODO: WinSSL: 'Add option to disable client cert auto-send'
151
152 By default WinSSL selects and send a client certificate automatically,
153 but for privacy and consistency we should offer an option to disable the
154 default auto-send behavior.
155
156 Reported-by: Jeroen Ooms
157
158 Closes https://github.com/curl/curl/issues/2262
159
160Daniel Stenberg (28 Jan 2019)
161- [Jeremie Rapin brought this change]
162
163 sigpipe: if mbedTLS is used, ignore SIGPIPE
164
165 mbedTLS doesn't have a sigpipe management. If a write/read occurs when
166 the remote closes the socket, the signal is raised and kills the
167 application. Use the curl mecanisms fix this behavior.
168
169 Signed-off-by: Jeremie Rapin <j.rapin@overkiz.com>
170
171 Closes #3502
172
173- unit1653: make it survive torture tests
174
175Jay Satiro (28 Jan 2019)
176- [Michael Kujawa brought this change]
177
178 timeval: Disable MSVC Analyzer GetTickCount warning
179
180 Compiling with msvc /analyze and a recent Windows SDK warns against
181 using GetTickCount (Suggests to use GetTickCount64 instead.)
182
183 Since GetTickCount is only being used when GetTickCount64 isn't
184 available, I am disabling that warning.
185
186 Fixes https://github.com/curl/curl/issues/3437
187 Closes https://github.com/curl/curl/pull/3440
188
189Daniel Stenberg (26 Jan 2019)
190- configure: rewrite --enable-code-coverage
191
192 The previously used ax_code_coverage.m4 is not license compatible and
193 must not be used.
194
195 Reported-by: William A. Rowe Jr
196 Fixes #3497
197 Closes #3499
198
199- [Felix Hädicke brought this change]
200
201 setopt: enable CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION for libssh
202
203 CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION are supported for
204 libssh as well. So accepting these options only when compiling with
205 libssh2 is wrong here.
206
207 Fixes #3493
208 Closes #3494
209
210- [Felix Hädicke brought this change]
211
212 libssh: do not let libssh create socket
213
214 By default, libssh creates a new socket, instead of using the socket
215 created by curl for SSH connections.
216
217 Pass the socket created by curl to libssh using ssh_options_set() with
218 SSH_OPTIONS_FD directly after ssh_new(). So libssh uses our socket
219 instead of creating a new one.
220
221 This approach is very similar to what is done in the libssh2 code, where
222 the socket created by curl is passed to libssh2 when
223 libssh2_session_startup() is called.
224
225 Fixes #3491
226 Closes #3495
227
228- RELEASE-NOTES: synced
229
230- [Archangel_SDY brought this change]
231
232 schannel: preserve original certificate path parameter
233
234 Fixes #3480
235 Closes #3487
236
237- KNOWN_BUGS: tests not compatible with python3
238
239 Closes #3289
240 [skip ci]
241
242Daniel Gustafsson (20 Jan 2019)
243- memcmp: avoid doing single char memcmp
244
245 There is no real gain in performing memcmp() comparisons on single
246 characters, so change these to array subscript inspections which
247 saves a call and makes the code clearer.
248
249 Closes #3486
250 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
251 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
252
253Daniel Stenberg (19 Jan 2019)
254- COPYING: it's 2019
255
256 [skip ci]
257
258- [hhb brought this change]
259
260 configure: fix recv/send/select detection on Android
261
262 This reverts commit d4f25201fb7da03fc88f90d51101beb3d0026db9.
263
264 The overloadable attribute is removed again starting from
265 NDK17. Actually they only exist in two NDK versions (15 and 16). With
266 overloadable, the first condition tried will succeed. Results in wrong
267 detection result.
268
269 Closes #3484
270
271Marcel Raad (19 Jan 2019)
272- [georgeok brought this change]
273
274 ntlm_sspi: add support for channel binding
275
276 Windows extended potection (aka ssl channel binding) is required
277 to login to ntlm IIS endpoint, otherwise the server returns 401
278 responses.
279
280 Fixes #3280
281 Closes #3321
282
283Daniel Stenberg (18 Jan 2019)
284- schannel: on connection close there might not be a transfer
285
286 Reported-by: Marcel Raad
287 Fixes #3412
288 Closes #3483
289
290- [Joel Depooter brought this change]
291
292 ssh: log the libssh2 error message when ssh session startup fails
293
294 When a ssh session startup fails, it is useful to know why it has
295 failed. This commit changes the message from:
296 "Failure establishing ssh session"
297 to something like this, for example:
298 "Failure establishing ssh session: -5, Unable to exchange encryption keys"
299
300 Closes #3481
301
302Alessandro Ghedini (16 Jan 2019)
303- Fix typo in manpage
304
305Daniel Stenberg (16 Jan 2019)
306- RELEASE-NOTES: synced
307
308Sergei Nikulov (16 Jan 2019)
309- cmake: updated check for HAVE_POLL_FINE to match autotools
310
311Daniel Stenberg (16 Jan 2019)
312- curl-compilers.m4: check for __ibmxl__ to detect xlclang
313
314 Follow-up to 2fa0d57e2e3. The __xlc__ symbol is only defined there if a
315 particular flag is used for legacy macros.
316
317 Fixes #3474
318 Closes #3479
319
320- openssl: fix the SSL_get_tlsext_status_ocsp_resp call
321
322 .... to not pass in a const in the second argument as that's not how it
323 is supposed to be used and might cause compiler warnings.
324
325 Reported-by: Pavel Pavlov
326 Fixes #3477
327 Closes #3478
328
329- curl-compilers.m4: detect xlclang
330
331 Since it isn't totally clang compatible, we detect this IBM clang
332 front-end and if detected, avoids some clang specific magic.
333
334 Reported-by: Kees Dekker
335 Fixes #3474
336 Closes #3476
337
338- README: add codacy code quality badge
339
340 [skip ci]
341
342- extract_if_dead: follow-up to 54b201b48c90a
343
344 extract_if_dead() dead is called from two functions, and only one of
345 them should get conn->data updated and now neither call path clears it.
346
347 scan-build found a case where conn->data would be NULL dereferenced in
348 ConnectionExists() otherwise.
349
350 Closes #3473
351
352- multi: remove "Dead assignment"
353
354 Found by scan-build. Follow-up to 4c35574bb785ce.
355
356 Closes #3471
357
358- tests: move objnames-* from lib into tests
359
360 Since they're used purely for testing purposes, I think they should
361 rather be stored there.
362
363 Closes #3470
364
365Sergei Nikulov (15 Jan 2019)
366- travis: added cmake build for osx
367
368Daniel Stenberg (14 Jan 2019)
369- [Frank Gevaerts brought this change]
370
371 cookie: fix comment typo (url_path_len -> uri_path_len)
372
373 Closes #3469
374
375Marcel Raad (14 Jan 2019)
376- winbuild: conditionally use /DZLIB_WINAPI
377
378 zlibwapi.lib (dynamic library) and zlibstat.lib (static library) have
379 the ZLIB_WINAPI define set by default. Using them requires that define
380 too.
381
382 Ref: https://zlib.net/DLL_FAQ.txt
383
384 Fixes https://github.com/curl/curl/issues/3133
385 Closes https://github.com/curl/curl/pull/3460
386
387Daniel Stenberg (14 Jan 2019)
388- src/Makefile: make 'tidy' target work for metalink builds
389
390- extract_if_dead: use a known working transfer when checking connections
391
392 Make sure that this function sets a proper "live" transfer for the
393 connection before calling the protocol-specific connection check
394 function, and then clear it again afterward as a non-used connection has
395 no current transfer.
396
397 Reported-by: Jeroen Ooms
398 Reviewed-by: Marcel Raad
399 Reviewed-by: Daniel Gustafsson
400 Fixes #3463
401 Closes #3464
402
403- openssl: adapt to 3.0.0, OpenSSL_version_num() is deprecated
404
405 OpenSSL_version() replaces OpenSSL_version_num()
406
407 Closes #3462
408
409Sergei Nikulov (11 Jan 2019)
410- cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCC
411
412Daniel Stenberg (11 Jan 2019)
413- urldata: rename easy_conn to just conn
414
415 We use "conn" everywhere to be a pointer to the connection.
416
417 Introduces two functions that "attaches" and "detaches" the connection
418 to and from the transfer.
419
420 Going forward, we should favour using "data->conn" (since a transfer
421 always only has a single connection or none at all) to "conn->data"
422 (since a connection can have none, one or many transfers associated with
423 it and updating conn->data to be correct is error prone and a frequent
424 reason for internal issues).
425
426 Closes #3442
427
428- tool_cb_prg: avoid integer overflow
429
430 When calculating the progress bar width.
431
432 Reported-by: Peng Li
433 Fixes #3456
434 Closes #3458
435
436Daniel Gustafsson (11 Jan 2019)
437- travis: turn off copyright year checks in checksrc
438
439 Invoking the maintainer intended COPYRIGHTYEAR check for everyone
440 in the PR pipeline is too invasive, especially at the turn of the
441 year when many files get affected. Remove and leave it as a tool
442 for maintainers to verify patches before commits.
443
444 This reverts f7bdf4b2e1d81b2652b81b9b3029927589273b41.
445
446 After discussion with: Daniel Stenberg
447
448Daniel Stenberg (10 Jan 2019)
449- KNOWN_BUGS: cmake makes unusable tool_hugehelp.c with MinGW
450
451 Closes #3125
452
453- KNOWN_BUGS: Improve --data-urlencode space encoding
454
455 Closes #3229
456
457Patrick Monnerat (10 Jan 2019)
458- os400: add a missing closing bracket
459
460 See https://github.com/curl/curl/issues/3453#issuecomment-453054458
461
462 Reported-by: jonrumsey on github
463
464- os400: fix extra parameter syntax error.
465
466 Reported-by: jonrumsey on github
467 Closes #3453
468
469Daniel Stenberg (10 Jan 2019)
470- test1558: verify CURLINFO_PROTOCOL on file:// transfer
471
472 Attempt to reproduce issue #3444.
473
474 Closes #3447
475
476- RELEASE-NOTES: synced
477
478- xattr: strip credentials from any URL that is stored
479
480 Both user and password are cleared uncondtitionally.
481
482 Added unit test 1621 to verify.
483
484 Fixes #3423
485 Closes #3433
486
487- cookies: allow secure override when done over HTTPS
488
489 Added test 1562 to verify.
490
491 Reported-by: Jeroen Ooms
492 Fixes #3445
493 Closes #3450
494
495- multi: multiplexing improvements
496
497 Fixes #3436
498 Closes #3448
499
500 Problem 1
501
502 After LOTS of scratching my head, I eventually realized that even when doing
503 10 uploads in parallel, sometimes the socket callback to the application that
504 tells it what to wait for on the socket, looked like it would reflect the
505 status of just the single transfer that just changed state.
506
507 Digging into the code revealed that this was indeed the truth. When multiple
508 transfers are using the same connection, the application did not correctly get
509 the *combined* flags for all transfers which then could make it switch to READ
510 (only) when in fact most transfers wanted to get told when the socket was
511 WRITEABLE.
512
513 Problem 1b
514
515 A separate but related regression had also been introduced by me when I
516 cleared connection/transfer association better a while ago, as now the logic
517 couldn't find the connection and see if that was marked as used by more
518 transfers and then it would also prematurely remove the socket from the socket
519 hash table even in times other transfers were still using it!
520
521 Fix 1
522
523 Make sure that each socket stored in the socket hash has a "combined" action
524 field of what to ask the application to wait for, that is potentially the ORed
525 action of multiple parallel transfers. And remove that socket hash entry only
526 if there are no transfers left using it.
527
528 Problem 2
529
530 The socket hash entry stored an association to a single transfer using that
531 socket - and when curl_multi_socket_action() was called to tell libcurl about
532 activities on that specific socket only that transfer was "handled".
533
534 This was WRONG, as a single socket/connection can be used by numerous parallel
535 transfers and not necessarily a single one.
536
537 Fix 2
538
539 We now store a list of handles in the socket hashtable entry and when libcurl
540 is told there's traffic for a particular socket, it now iterates over all
541 known transfers using that single socket.
542
543- test1561: improve test name
544
545 [skip ci]
546
547- [Katsuhiko YOSHIDA brought this change]
548
549 cookies: skip custom cookies when redirecting cross-site
550
551 Closes #3417
552
553- THANKS: fixups and a dedupe
554
555 [skip ci]
556
557- timediff: fix math for unsigned time_t
558
559 Bug: https://curl.haxx.se/mail/lib-2018-12/0088.html
560
561 Closes #3449
562
563- [Bernhard M. Wiedemann brought this change]
564
565 tests: allow tests to pass by 2037-02-12
566
567 similar to commit f508d29f3902104018
568
569 Closes #3443
570
571- RELEASE-NOTES: synced
572
573- [Brad Spencer brought this change]
574
575 curl_multi_remove_handle() don't block terminating c-ares requests
576
577 Added Curl_resolver_kill() for all three resolver modes, which only
578 blocks when necessary, along with test 1592 to confirm
579 curl_multi_remove_handle() doesn't block unless it must.
580
581 Closes #3428
582 Fixes #3371
583
584- Revert "http_negotiate: do not close connection until negotiation is completed"
585
586 This reverts commit 07ebaf837843124ee670e5b8c218b80b92e06e47.
587
588 This also reopens PR #3275 which brought the change now reverted.
589
590 Fixes #3384
591 Closes #3439
592
593- curl/urlapi.h: include "curl.h" first
594
595 This allows programs to include curl/urlapi.h directly.
596
597 Reviewed-by: Daniel Gustafsson
598 Reported-by: Ben Kohler
599 Fixes #3438
600 Closes #3441
601
602Marcel Raad (6 Jan 2019)
603- VS projects: fix build warning
604
605 Starting with Visual Studio 2017 Update 9, Visual Studio doesn't like
606 the MinimalRebuild option anymore and warns:
607
608 cl : Command line warning D9035: option 'Gm' has been deprecated and
609 will be removed in a future release
610
611 The option can be safely removed so that the default is used.
612
613 Closes https://github.com/curl/curl/pull/3425
614
615- schannel: fix compiler warning
616
617 When building with Unicode on MSVC, the compiler warns about freeing a
618 pointer to const in Curl_unicodefree. Fix this by declaring it as
619 non-const and casting the argument to Curl_convert_UTF8_to_tchar to
620 non-const too, like we do in all other places.
621
622 Closes https://github.com/curl/curl/pull/3435
623
624Daniel Stenberg (4 Jan 2019)
625- [Rikard Falkeborn brought this change]
626
627 printf: introduce CURL_FORMAT_TIMEDIFF_T
628
629- [Rikard Falkeborn brought this change]
630
631 printf: fix format specifiers
632
633 Closes #3426
634
635- libtest/stub_gssapi: use "real" snprintf
636
637 ... since it doesn't link with libcurl.
638
639 Reverts the commit dcd6f81025 changes from this file.
640
641 Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
642 Reported-by: Shlomi Fish
643 Reviewed-by: Daniel Gustafsson
644 Reviewed-by: Kamil Dudka
645
646 Closes #3434
647
648- INTERNALS: correct some outdated function names
649
650 Closes #3431
651
652- docs/version.d: mention MultiSSL
653
654 Reviewed-by: Daniel Gustafsson
655 Closes #3432
656
657Daniel Gustafsson (2 Jan 2019)
658- [Rikard Falkeborn brought this change]
659
660 examples: Update .gitignore
661
662 Add a few missing examples to make `make examples` not leave the
663 workspace in a dirty state.
664
665 Closes #3427
666 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
667
668- THANKS: add more missing names
669
670 Add Adrian Burcea who made the artwork for the curl://up 2018 event
671 which was held in Stockholm, Sweden.
672
673- docs: mention potential leak in curl_slist_append
674
675 When a non-empty list is appended to, and used as the returnvalue,
676 the list pointer can leak in case of an allocation failure in the
677 curl_slist_append() call. This is correctly handled in curl code
678 usage but we weren't explicitly pointing it out in the API call
679 documentation. Fix by extending the RETURNVALUE manpage section
680 and example code.
681
682 Closes #3424
683 Reported-by: dnivras on github
684 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
685
686Marcel Raad (1 Jan 2019)
687- tvnow: silence conversion warnings
688
689 MinGW-w64 defaults to targeting Windows 7 now, so GetTickCount64 is
690 used and the milliseconds are represented as unsigned long long,
691 leading to a compiler warning when implicitly converting them to long.
692
693Daniel Stenberg (1 Jan 2019)
694- THANKS: dedupe more names
695
696 Researched-by: Tae Wong
697
698Marcel Raad (1 Jan 2019)
699- [Markus Moeller brought this change]
700
701 ntlm: update selection of type 3 response
702
703 NTLM2 did not work i.e. no NTLMv2 response was created. Changing the
704 check seems to work.
705
706 Ref: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NLMP/[MS-NLMP].pdf
707
708 Fixes https://github.com/curl/curl/issues/3286
709 Closes https://github.com/curl/curl/pull/3287
710 Closes https://github.com/curl/curl/pull/3415
711
712Daniel Stenberg (31 Dec 2018)
713- THANKS: added missing names from year <= 2000
714
715 Due to a report of a missing name in THANKS I manually went through an
716 old CHANGES.0 file and added many previously missing names here.
717
718Daniel Gustafsson (30 Dec 2018)
719- urlapi: fix parsing ipv6 with zone index
720
721 The previous fix for parsing IPv6 URLs with a zone index was a paddle
722 short for URLs without an explicit port. This patch fixes that case
723 and adds a unit test case.
724
725 This bug was highlighted by issue #3408, and while it's not the full
726 fix for the problem there it is an isolated bug that should be fixed
727 regardless.
728
729 Closes #3411
730 Reported-by: GitYuanQu on github
731 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
732
733Daniel Stenberg (30 Dec 2018)
734- THANKS: dedupe Guenter Knauf
735
736 Reported-by: Tae Wong
737
738- THANKS: missing name from the 6.3.1 release!
739
740Daniel Gustafsson (27 Dec 2018)
741- RELEASE-NOTES: synced
742
743- [Claes Jakobsson brought this change]
744
745 hostip: support wildcard hosts
746
747 This adds support for wildcard hosts in CURLOPT_RESOLVE. These are
748 try-last so any non-wildcard entry is resolved first. If specified,
749 any host not matched by another CURLOPT_RESOLVE config will use this
750 as fallback.
751
752 Example send a.com to 10.0.0.1 and everything else to 10.0.0.2:
753 curl --resolve *:443:10.0.0.2 --resolve a.com:443:10.0.0.1 \
754 https://a.com https://b.com
755
756 This is probably quite similar to using:
757 --connect-to a.com:443:10.0.0.1:443 --connect-to :443:10.0.0.2:443
758
759 Closes #3406
760 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
761
762- url: fix incorrect indentation
763
764Patrick Monnerat (26 Dec 2018)
765- os400: upgrade ILE/RPG binding.
766
767 - Trailer function support.
768 - http 0.9 option.
769 - curl_easy_upkeep.
770
771Daniel Gustafsson (25 Dec 2018)
772- FAQ: remove mention of sourceforge for github
773
774 The project bug tracker is no longer hosted at sourceforge but is now
775 hosted on the curl Github page. Update the FAQ to reflect.
776
777 Closes #3410
778 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
779
780- openvms: fix typos in documentation
781
782- openvms: fix OpenSSL discovery on VAX
783
784 The DCL code had a typo in one of the commands which would make the
785 OpenSSL discovery on VAX fail. The correct syntax is F$ENVIRONMENT.
786
787 Closes #3407
788 Reviewed-by: Viktor Szakats <commit@vszakats.net>
789
790Daniel Stenberg (24 Dec 2018)
791- [Ruslan Baratov brought this change]
792
793 cmake: use lowercase for function name like the rest of the code
794
795 Reviewed-by: Sergei Nikulov
796
797 closes #3196
798
799- Revert "libssh: no data pointer == nothing to do"
800
801 This reverts commit c98ee5f67f497195c9 since commit f3ce38739fa fixed the
802 problem in a more generic way.
803
804- disconnect: set conn->data for protocol disconnect
805
806 Follow-up to fb445a1e18d: Set conn->data explicitly to point out the
807 current transfer when invoking the protocol-specific disconnect function
808 so that it can work correctly.
809
810 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12173
811
812Jay Satiro (23 Dec 2018)
813- [Pavel Pavlov brought this change]
814
815 timeval: Use high resolution timestamps on Windows
816
817 - Use QueryPerformanceCounter on Windows Vista+
818
819 There is confusing info floating around that QueryPerformanceCounter
820 can leap etc, which might have been true long time ago, but no longer
821 the case nowadays (perhaps starting from WinXP?). Also, boost and
822 std::chrono::steady_clock use QueryPerformanceCounter in a similar way.
823
824 Prior to this change GetTickCount or GetTickCount64 was used, which has
825 lower resolution. That is still the case for <= XP.
826
827 Fixes https://github.com/curl/curl/issues/3309
828 Closes https://github.com/curl/curl/pull/3318
829
830Daniel Stenberg (22 Dec 2018)
831- libssh: no data pointer == nothing to do
832
833- conncache_unlock: avoid indirection by changing input argument type
834
835- disconnect: separate connections and easy handles better
836
837 Do not assume/store assocation between a given easy handle and the
838 connection if it can be avoided.
839
840 Long-term, the 'conn->data' pointer should probably be removed as it is a
841 little too error-prone. Still used very widely though.
842
843 Reported-by: masbug on github
844 Fixes #3391
845 Closes #3400
846
847- libssh: free sftp_canonicalize_path() data correctly
848
849 Assisted-by: Harry Sintonen
850
851 Fixes #3402
852 Closes #3403
853
854- RELEASE-NOTES: synced
855
856- http: added options for allowing HTTP/0.9 responses
857
858 Added CURLOPT_HTTP09_ALLOWED and --http0.9 for this purpose.
859
860 For now, both the tool and library allow HTTP/0.9 by default.
861 docs/DEPRECATE.md lays out the plan for when to reverse that default: 6
862 months after the 7.64.0 release. The options are added already now so
863 that applications/scripts can start using them already now.
864
865 Fixes #2873
866 Closes #3383
867
868- if2ip: remove unused function Curl_if_is_interface_name
869
870 Closes #3401
871
872- http2: clear pause stream id if it gets closed
873
874 Reported-by: Florian Pritz
875
876 Fixes #3392
877 Closes #3399
878
879Daniel Gustafsson (20 Dec 2018)
880- [David Garske brought this change]
881
882 wolfssl: Perform cleanup
883
884 This adds a cleanup callback for cyassl. Resolves possible memory leak
885 when using ECC fixed point cache.
886
887 Closes #3395
888 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
889 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
890
891Daniel Stenberg (20 Dec 2018)
892- mbedtls: follow-up VERIFYHOST fix from f097669248
893
894 Fix-by: Eric Rosenquist
895
896 Fixes #3376
897 Closes #3390
898
899- curlver: bump to 7.64.0 for next release
900
901Daniel Gustafsson (19 Dec 2018)
902- cookies: extend domain checks to non psl builds
903
904 Ensure to perform the checks we have to enforce a sane domain in
905 the cookie request. The check for non-PSL enabled builds is quite
906 basic but it's better than nothing.
907
908 Closes #2964
909 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
910
911Daniel Stenberg (19 Dec 2018)
912- [Matus Uzak brought this change]
913
914 smb: fix incorrect path in request if connection reused
915
916 Follow-up to 09e401e01bf9. If connection gets reused, then data member
917 will be copied, but not the proto member. As a result, in smb_do(),
918 path has been set from the original proto.share data.
919
920 Closes #3388
921
922- curl -J: do not append to the destination file
923
924 Reported-by: Kamil Dudka
925 Fixes #3380
926 Closes #3381
927
928- mbedtls: use VERIFYHOST
929
930 Previously, VERIFYPEER would enable/disable all checks.
931
932 Reported-by: Eric Rosenquist
933 Fixes #3376
934 Closes #3380
935
936- pingpong: change default response timeout to 120 seconds
937
938 Previously it was 30 minutes
939
940- pingpong: ignore regular timeout in disconnect phase
941
942 The timeout set with CURLOPT_TIMEOUT is no longer used when
943 disconnecting from one of the pingpong protocols (FTP, IMAP, SMTP,
944 POP3).
945
946 Reported-by: jasal82 on github
947
948 Fixes #3264
949 Closes #3374
950
951- TODO: Windows: set attribute 'archive' for completed downloads
952
953 Closes #3354
954
955- RELEASE-NOTES: synced
956
957- http: minor whitespace cleanup from f464535b
958
959- [Ayoub Boudhar brought this change]
960
961 http: Implement trailing headers for chunked transfers
962
963 This adds the CURLOPT_TRAILERDATA and CURLOPT_TRAILERFUNCTION
964 options that allow a callback based approach to sending trailing headers
965 with chunked transfers.
966
967 The test server (sws) was updated to take into account the detection of the
968 end of transfer in the case of trailing headers presence.
969
970 Test 1591 checks that trailing headers can be sent using libcurl.
971
972 Closes #3350
973
974- darwinssl: accept setting max-tls with default min-tls
975
976 Reported-by: Andrei Neculau
977 Fixes #3367
978 Closes #3373
979
980- gopher: fix memory leak from 9026083ddb2a9
981
982- [Leonardo Taccari brought this change]
983
984 test1201: Add a trailing `?' to the selector
985
986 This verify that the `?' in the selector is kept as is.
987
988 Verifies the fix in #3370
989
990- [Leonardo Taccari brought this change]
991
992 gopher: always include the entire gopher-path in request
993
994 After the migration to URL API all octets in the selector after the
995 first `?' were interpreted as query and accidentally discarded and not
996 passed to the server.
997
998 Add a gopherpath to always concatenate possible path and query URL
999 pieces.
1000
1001 Fixes #3369
1002 Closes #3370
1003
1004- [Leonardo Taccari brought this change]
1005
1006 urlapi: distinguish possibly empty query
1007
1008 If just a `?' to indicate the query is passed always store a zero length
1009 query instead of having a NULL query.
1010
1011 This permits to distinguish URL with trailing `?'.
1012
1013 Fixes #3369
1014 Closes #3370
1015
1016Daniel Gustafsson (13 Dec 2018)
1017- OS400: handle memory error in list conversion
1018
1019 Curl_slist_append_nodup() returns NULL when it fails to create a new
1020 item for the specified list, and since the coding here reassigned the
1021 new list on top of the old list it would result in a dangling pointer
1022 and lost memory. Also, in case we hit an allocation failure at some
1023 point during the conversion, with allocation succeeding again on the
1024 subsequent call(s) we will return a truncated list around the malloc
1025 failure point. Fix by assigning to a temporary list pointer, which can
1026 be checked (which is the common pattern for slist appending), and free
1027 all the resources on allocation failure.
1028
1029 Closes #3372
1030 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1031
1032- cookies: leave secure cookies alone
1033
1034 Only allow secure origins to be able to write cookies with the
1035 'secure' flag set. This reduces the risk of non-secure origins
1036 to influence the state of secure origins. This implements IETF
1037 Internet-Draft draft-ietf-httpbis-cookie-alone-01 which updates
1038 RFC6265.
1039
1040 Closes #2956
1041 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1042
1043Daniel Stenberg (13 Dec 2018)
1044- docs: fix the --tls-max description
1045
1046 Reported-by: Tobias Lindgren
1047 Pointed out in #3367
1048
1049 Closes #3368
1050
1051Daniel Gustafsson (12 Dec 2018)
1052- urlapi: Fix port parsing of eol colon
1053
1054 A URL with a single colon without a portnumber should use the default
1055 port, discarding the colon. Fix, add a testcase and also do little bit
1056 of comment wordsmithing.
1057
1058 Closes #3365
1059 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1060
Haibo Huang21926d52019-01-08 14:27:10 -08001061Version 7.63.0 (12 Dec 2018)
1062
1063Daniel Stenberg (12 Dec 2018)
1064- RELEASE-NOTES: 7.63.0
1065
1066- THANKS: from the curl 7.62.0 cycle
1067
1068- test1519: use lib1518 and test CURLINFO_REDIRECT_URL more
1069
1070- Curl_follow: extract the Location: header field unvalidated
1071
1072 ... when not actually following the redirect. Otherwise we return error
1073 for this and an application can't extract the value.
1074
1075 Test 1518 added to verify.
1076
1077 Reported-by: Pavel Pavlov
1078 Fixes #3340
1079 Closes #3364
1080
1081- multi: convert two timeout variables to timediff_t
1082
1083 The time_t type is unsigned on some systems and these variables are used
1084 to hold return values from functions that return timediff_t
1085 already. timediff_t is always a signed type.
1086
1087 Closes #3363
1088
1089- delta: use --diff-filter on the git diff-tree invokes
1090
1091 Suggested-by: Dave Reisner
1092
1093Patrick Monnerat (11 Dec 2018)
1094- documentation: curl_formadd field and file names are now escaped
1095
1096 Prior to 7.56.0, fieldnames and filenames were set in Content-Disposition
1097 header without special processing: this may lead to invalid RFC 822
1098 quoted-strings.
1099 7.56.0 introduces escaping of backslashes and double quotes in these names:
1100 mention it in the documentation.
1101
1102 Reported-by: daboul on github
1103 Closes #3361
1104
1105Daniel Stenberg (11 Dec 2018)
1106- scripts/delta: show repo delta info from last release
1107
1108 ... where "last release" should be the git tag in the repo.
1109
1110Daniel Gustafsson (11 Dec 2018)
1111- tests: add urlapi unittest
1112
1113 This adds a new unittest intended to cover the internal functions in
1114 the urlapi code, starting with parse_port(). In order to avoid name
1115 collisions in debug builds, parse_port() is renamed Curl_parse_port()
1116 since it will be exported.
1117
1118 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1119 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1120
1121- urlapi: fix portnumber parsing for ipv6 zone index
1122
1123 An IPv6 URL which contains a zone index includes a '%%25<zode id>'
1124 string before the ending ']' bracket. The parsing logic wasn't set
1125 up to cope with the zone index however, resulting in a malformed url
1126 error being returned. Fix by breaking the parsing into two stages
1127 to correctly handle the zone index.
1128
1129 Closes #3355
1130 Closes #3319
1131 Reported-by: tonystz on Github
1132 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1133 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1134
1135Daniel Stenberg (11 Dec 2018)
1136- [Jay Satiro brought this change]
1137
1138 http: fix HTTP auth to include query in URI
1139
1140 - Include query in the path passed to generate HTTP auth.
1141
1142 Recent changes to use the URL API internally (46e1640, 7.62.0)
1143 inadvertently broke authentication URIs by omitting the query.
1144
1145 Fixes https://github.com/curl/curl/issues/3353
1146 Closes #3356
1147
1148- [Michael Kaufmann brought this change]
1149
1150 http: don't set CURLINFO_CONDITION_UNMET for http status code 204
1151
1152 The http status code 204 (No Content) should not change the "condition
1153 unmet" flag. Only the http status code 304 (Not Modified) should do
1154 this.
1155
1156 Closes #359
1157
1158- [Samuel Surtees brought this change]
1159
1160 ldap: fix LDAP URL parsing regressions
1161
1162 - Match URL scheme with LDAP and LDAPS
1163 - Retrieve attributes, scope and filter from URL query instead
1164
1165 Regression brought in 46e164069d1a5230 (7.62.0)
1166
1167 Closes #3362
1168
1169- RELEASE-NOTES: synced
1170
1171- [Stefan Kanthak brought this change]
1172
1173 (lib)curl.rc: fixup for minor bugs
1174
1175 All resources defined in lib/libcurl.rc and curl.rc are language
1176 neutral.
1177
1178 winbuild/MakefileBuild.vc ALWAYS defines the macro DEBUGBUILD, so the
1179 ifdef's in line 33 of lib/libcurl.rc and src/curl.rc are wrong.
1180
1181 Replace the hard-coded constants in both *.rc files with #define'd
1182 values.
1183
1184 Thumbs-uped-by: Rod Widdowson, Johannes Schindelin
1185 URL: https://curl.haxx.se/mail/lib-2018-11/0000.html
1186 Closes #3348
1187
1188- test329: verify cookie max-age=0 immediate expiry
1189
1190- cookies: expire "Max-Age=0" immediately
1191
1192 Reported-by: Jeroen Ooms
1193 Fixes #3351
1194 Closes #3352
1195
1196- [Johannes Schindelin brought this change]
1197
1198 Upon HTTP_1_1_REQUIRED, retry the request with HTTP/1.1
1199
1200 This is a companion patch to cbea2fd2c (NTLM: force the connection to
1201 HTTP/1.1, 2018-12-06): with NTLM, we can switch to HTTP/1.1
1202 preemptively. However, with other (Negotiate) authentication it is not
1203 clear to this developer whether there is a way to make it work with
1204 HTTP/2, so let's try HTTP/2 first and fall back in case we encounter the
1205 error HTTP_1_1_REQUIRED.
1206
1207 Note: we will still keep the NTLM workaround, as it avoids an extra
1208 round trip.
1209
1210 Daniel Stenberg helped a lot with this patch, in particular by
1211 suggesting to introduce the Curl_h2_http_1_1_error() function.
1212
1213 Closes #3349
1214
1215 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1216
1217- [Ben Greear brought this change]
1218
1219 openssl: fix unused variable compiler warning with old openssl
1220
1221 URL: https://curl.haxx.se/mail/lib-2018-11/0055.html
1222
1223 Closes #3347
1224
1225- [Johannes Schindelin brought this change]
1226
1227 NTLM: force the connection to HTTP/1.1
1228
1229 Since v7.62.0, cURL tries to use HTTP/2 whenever the server announces
1230 the capability. However, NTLM authentication only works with HTTP/1.1,
1231 and will likely remain in that boat (for details, see
1232 https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis#when-is-http2-not-supported).
1233
1234 When we just found out that we want to use NTLM, and when the current
1235 connection runs in HTTP/2 mode, let's force the connection to be closed
1236 and to be re-opened using HTTP/1.1.
1237
1238 Fixes https://github.com/curl/curl/issues/3341.
1239 Closes #3345
1240
1241 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1242
1243- [Johannes Schindelin brought this change]
1244
1245 curl_global_sslset(): id == -1 is not necessarily an error
1246
1247 It is allowed to call that function with id set to -1, specifying the
1248 backend by the name instead. We should imitate what is done further down
1249 in that function to allow for that.
1250
1251 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1252
1253 Closes #3346
1254
1255Johannes Schindelin (6 Dec 2018)
1256- .gitattributes: make tabs in indentation a visible error
1257
1258 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1259
1260Daniel Stenberg (6 Dec 2018)
1261- RELEASE-NOTES: synced
1262
1263- doh: fix memory leak in OOM situation
1264
1265 Reviewed-by: Daniel Gustafsson
1266 Closes #3342
1267
1268- doh: make it work for h2-disabled builds too
1269
1270 Reported-by: dtmsecurity at github
1271 Fixes #3325
1272 Closes #3336
1273
1274- packages: remove old leftover files and dirs
1275
1276 This subdir has mostly become an attic of never-used cruft from the
1277 past.
1278
1279 Closes #3331
1280
1281- [Gergely Nagy brought this change]
1282
1283 openssl: do not use file BIOs if not requested
1284
1285 Moves the file handling BIO calls to the branch of the code where they
1286 are actually used.
1287
1288 Closes #3339
1289
1290- [Paul Howarth brought this change]
1291
1292 nss: Fix compatibility with nss versions 3.14 to 3.15
1293
1294- [Paul Howarth brought this change]
1295
1296 nss: Improve info message when falling back SSL protocol
1297
1298 Use descriptive text strings rather than decimal numbers.
1299
1300- [Paul Howarth brought this change]
1301
1302 nss: Fall back to latest supported SSL version
1303
1304 NSS may be built without support for the latest SSL/TLS versions,
1305 leading to "SSL version range is not valid" errors when the library
1306 code supports a recent version (e.g. TLS v1.3) but it has explicitly
1307 been disabled.
1308
1309 This change adjusts the maximum SSL version requested by libcurl to
1310 be the maximum supported version at runtime, as long as that version
1311 is at least as high as the minimum version required by libcurl.
1312
1313 Fixes #3261
1314
1315Daniel Gustafsson (3 Dec 2018)
1316- travis: enable COPYRIGHTYEAR extended warning
1317
1318 The extended warning for checking incorrect COPYRIGHTYEAR is quite
1319 expensive to run, so rather than expecting every developer to do it
1320 we ensure it's turned on locally for Travis.
1321
1322- checksrc: add COPYRIGHTYEAR check
1323
1324 Forgetting to bump the year in the copyright clause when hacking has
1325 been quite common among curl developers, but a traditional checksrc
1326 check isn't a good fit as it would penalize anyone hacking on January
1327 1st (among other things). This adds a more selective COPYRIGHTYEAR
1328 check which intends to only cover the currently hacked on changeset.
1329
1330 The check for updated copyright year is currently not enforced on all
1331 files but only on files edited and/or committed locally. This is due to
1332 the amount of files which aren't updated with their correct copyright
1333 year at the time of their respective commit.
1334
1335 To further avoid running this expensive check for every developer, it
1336 adds a new local override mode for checksrc where a .checksrc file can
1337 be used to turn on extended warnings locally.
1338
1339 Closes #3303
1340 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1341
1342Daniel Stenberg (3 Dec 2018)
1343- CHECKSRC.md: document more warnings
1344
1345 Closes #3335
1346 [ci skip]
1347
1348- RELEASE-NOTES: synced
1349
1350- SECURITY-PROCESS: bountygraph shuts down
1351
1352 This backpedals back the documents to the state before bountygraph.
1353
1354 Closes #3311
1355
1356- curl: fix memory leak reading --writeout from file
1357
1358 If another string had been set first, the writout function for reading
1359 the syntax from file would leak the previously allocated memory.
1360
1361 Reported-by: Brian Carpenter
1362 Fixes #3322
1363 Closes #3330
1364
1365- tool_main: rename function to make it unique and better
1366
1367 ... there's already another function in the curl tool named
1368 free_config_fields!
1369
1370Daniel Gustafsson (29 Nov 2018)
1371- TODO: remove CURLOPT_DNS_USE_GLOBAL_CACHE entry
1372
1373 Commit 7c5837e79280e6abb3ae143dfc49bca5e74cdd11 deprecated the option
1374 making it a manual code-edit operation to turn it back on. The removal
1375 process has thus started and is now documented in docs/DEPRECATE.md so
1376 remove from the TODO to avoid anyone looking for something to pick up
1377 spend cycles on an already in-progress entry.
1378
1379 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1380
1381Jay Satiro (29 Nov 2018)
1382- [Sevan Janiyan brought this change]
1383
1384 connect: fix building for recent versions of Minix
1385
1386 EBADIOCTL doesn't exist on more recent Minix.
1387 There have also been substantial changes to the network stack.
1388 Fixes build on Minix 3.4rc
1389
1390 Closes https://github.com/curl/curl/pull/3323
1391
1392- [Konstantin Kushnir brought this change]
1393
1394 CMake: fix MIT/Heimdal Kerberos detection
1395
1396 - fix syntax error in FindGSS.cmake
1397 - correct krb5 include directory. FindGSS exports
1398 "GSS_INCLUDE_DIR" variable.
1399
1400 Closes https://github.com/curl/curl/pull/3316
1401
1402Daniel Stenberg (28 Nov 2018)
1403- test328: verify Content-Encoding: none
1404
1405 Because of issue #3315
1406
1407 Closes #3317
1408
1409- [James Knight brought this change]
1410
1411 configure: include all libraries in ssl-libs fetch
1412
1413 When compiling a collection of SSL libraries to link against (SSL_LIBS),
1414 ensure all libraries are included. The call `--libs-only-l` can produce
1415 only a subset of found in a `--libs` call (e.x. pthread may be excluded).
1416 Adding `--libs-only-other` ensures other libraries are also included in
1417 the list. This corrects select build environments compiling against a
1418 static version of OpenSSL. Before the change, the following could be
1419 observed:
1420
1421 checking for openssl options with pkg-config... found
1422 configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -lcrypto -lz -ldl "
1423 configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
1424 configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
1425 checking for HMAC_Update in -lcrypto... no
1426 checking for HMAC_Init_ex in -lcrypto... no
1427 checking OpenSSL linking with -ldl... no
1428 checking OpenSSL linking with -ldl and -lpthread... no
1429 configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
1430 configure: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.
1431 ...
1432 SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
1433 ...
1434
1435 And include the other libraries when compiling SSL_LIBS succeeds with:
1436
1437 checking for openssl options with pkg-config... found
1438 configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -pthread -lcrypto -lz -ldl -pthread "
1439 configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
1440 configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
1441 checking for HMAC_Update in -lcrypto... yes
1442 checking for SSL_connect in -lssl... yes
1443 ...
1444 SSL support: enabled (OpenSSL)
1445 ...
1446
1447 Signed-off-by: James Knight <james.d.knight@live.com>
1448 Closes #3193
1449
1450Daniel Gustafsson (26 Nov 2018)
1451- doh: fix typo in infof call
1452
1453 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1454
1455- cmdline-opts/gen.pl: define the correct varname
1456
1457 The variable definition had a small typo making it declare another
1458 variable then the intended.
1459
1460 Closes #3304
1461 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1462
1463Daniel Stenberg (25 Nov 2018)
1464- RELEASE-NOTES: synced
1465
1466- curl_easy_perform: fix timeout handling
1467
1468 curl_multi_wait() was erroneously used from within
1469 curl_easy_perform(). It could lead to it believing there was no socket
1470 to wait for and then instead sleep for a while instead of monitoring the
1471 socket and then miss acting on that activity as swiftly as it should
1472 (causing an up to 1000 ms delay).
1473
1474 Reported-by: Antoni Villalonga
1475 Fixes #3305
1476 Closes #3306
1477 Closes #3308
1478
1479- CURLOPT_WRITEFUNCTION.3: spell out that it gets called many times
1480
1481- cookies: create the cookiejar even if no cookies to save
1482
1483 Important for when the file is going to be read again and thus must not
1484 contain old contents!
1485
1486 Adds test 327 to verify.
1487
1488 Reported-by: daboul on github
1489 Fixes #3299
1490 Closes #3300
1491
1492- checksrc: ban snprintf use, add command line flag to override warns
1493
1494- snprintf: renamed and we now only use msnprintf()
1495
1496 The function does not return the same value as snprintf() normally does,
1497 so readers may be mislead into thinking the code works differently than
1498 it actually does. A different function name makes this easier to detect.
1499
1500 Reported-by: Tomas Hoger
1501 Assisted-by: Daniel Gustafsson
1502 Fixes #3296
1503 Closes #3297
1504
1505- [Tobias Hintze brought this change]
1506
1507 test: update test20/1322 for eglibc bug workaround
1508
1509 The tests 20 and 1322 are using getaddrinfo of libc for resolving. In
1510 eglibc-2.19 there is a memory leakage and invalid free bug which
1511 surfaces in some special circumstances (PF_UNSPEC hint with invalid or
1512 non-existent names). The valgrind runs in testing fail in these
1513 situations.
1514
1515 As the tests 20/1322 are not specific on either protocol (IPv4/IPv6)
1516 this commit changes the hints to IPv4 protocol by passing `--ipv4` flag
1517 on the tests' command line. This prevents the valgrind failures.
1518
1519- [Tobias Hintze brought this change]
1520
1521 host names: allow trailing dot in name resolve, then strip it
1522
1523 Delays stripping of trailing dots to after resolving the hostname.
1524
1525 Fixes #3022
1526 Closes #3222
1527
1528- [UnknownShadow200 brought this change]
1529
1530 CURLOPT_HEADERFUNCTION.3: match 'nitems' name in synopsis and description
1531
1532 Closes #3295
1533
1534Daniel Gustafsson (21 Nov 2018)
1535- configure: Fix typo in comment
1536
1537Michael Kaufmann (21 Nov 2018)
1538- openssl: support session resume with TLS 1.3
1539
1540 Session resumption information is not available immediately after a TLS 1.3
1541 handshake. The client must wait until the server has sent a session ticket.
1542
1543 Use OpenSSL's "new session" callback to get the session information and put it
1544 into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
1545 after the server has sent a session ticket.
1546
1547 The "new session" callback is invoked only if OpenSSL's session cache is
1548 enabled, so enable it and use the "external storage" mode which lets curl manage
1549 the contents of the session cache.
1550
1551 A pointer to the connection data and the sockindex are now saved as "SSL extra
1552 data" to make them available to the callback.
1553
1554 This approach also works for old SSL/TLS versions and old OpenSSL versions.
1555
1556 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1557
1558 Fixes #3202
1559 Closes #3271
1560
1561- ssl: fix compilation with OpenSSL 0.9.7
1562
1563 - ENGINE_cleanup() was used without including "openssl/engine.h"
1564 - enable engine support for OpenSSL 0.9.7
1565
1566 Closes #3266
1567
1568Daniel Stenberg (21 Nov 2018)
1569- openssl: disable TLS renegotiation with BoringSSL
1570
1571 Since we're close to feature freeze, this change disables this feature
1572 with an #ifdef. Define ALLOW_RENEG at build-time to enable.
1573
1574 This could be converted to a bit for CURLOPT_SSL_OPTIONS to let
1575 applications opt-in this.
1576
1577 Concern-raised-by: David Benjamin
1578 Fixes #3283
1579 Closes #3293
1580
1581- [Romain Fliedel brought this change]
1582
1583 ares: remove fd from multi fd set when ares is about to close the fd
1584
1585 When using c-ares for asyn dns, the dns socket fd was silently closed
1586 by c-ares without curl being aware. curl would then 'realize' the fd
1587 has been removed at next call of Curl_resolver_getsock, and only then
1588 notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
1589 CURL_POLL_REMOVE. At this point the fd is already closed.
1590
1591 By using ares socket state callback (ARES_OPT_SOCK_STATE_CB), this
1592 patch allows curl to be notified that the fd is not longer needed
1593 for neither for write nor read. At this point by calling
1594 Curl_multi_closed we are able to notify multi with CURL_POLL_REMOVE
1595 before the fd is actually closed by ares.
1596
1597 In asyn-ares.c Curl_resolver_duphandle we can't use ares_dup anymore
1598 since it does not allow passing a different sock_state_cb_data
1599
1600 Closes #3238
1601
1602- [Romain Fliedel brought this change]
1603
1604 examples/ephiperfifo: report error when epoll_ctl fails
1605
1606Daniel Gustafsson (20 Nov 2018)
1607- [pkubaj brought this change]
1608
1609 ntlm: Remove redundant ifdef USE_OPENSSL
1610
1611 lib/curl_ntlm.c had code that read as follows:
1612
1613 #ifdef USE_OPENSSL
1614 # ifdef USE_OPENSSL
1615 # else
1616 # ..
1617 # endif
1618 #endif
1619
1620 Remove the redundant USE_OPENSSL along with #else (it's not possible to
1621 reach it anyway). The removed construction is a leftover from when the
1622 SSLeay support was removed.
1623
1624 Closes #3269
1625 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
1626 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1627
1628Daniel Stenberg (20 Nov 2018)
1629- [Han Han brought this change]
1630
1631 ssl: replace all internal uses of CURLE_SSL_CACERT
1632
1633 Closes #3291
1634
1635Han Han (19 Nov 2018)
1636- docs: add more description to unified ssl error codes
1637
1638- curle: move deprecated error code to ifndef block
1639
1640Patrick Monnerat (19 Nov 2018)
1641- os400: add CURLOPT_CURLU to ILE/RPG binding.
1642
1643- os400: Add curl_easy_conn_upkeep() to ILE/RPG binding.
1644
1645- os400: fix return type of curl_easy_pause() in ILE/RPG binding.
1646
1647Daniel Stenberg (19 Nov 2018)
1648- RELEASE-NOTES: synced
1649
1650- impacket: add LICENSE
1651
1652 The license for the impacket package was not in our tree.
1653
1654 Imported now from upstream's
1655 https://github.com/SecureAuthCorp/impacket/blob/master/LICENSE
1656
1657 Reported-by: infinnovation-dev on github
1658 Fixes #3276
1659 Closes #3277
1660
1661Daniel Gustafsson (18 Nov 2018)
1662- tool_doswin: Fix uninitialized field warning
1663
1664 The partial struct initialization in 397664a065abffb7c3445ca9 caused
1665 a warning on uninitialized MODULEENTRY32 struct members:
1666
1667 /src/tool_doswin.c:681:3: warning: missing initializer for field
1668 'th32ModuleID' of 'MODULEENTRY32 {aka struct tagMODULEENTRY32}'
1669 [-Wmissing-field-initializers]
1670
1671 This is sort of a bogus warning as the remaining members will be set
1672 to zero by the compiler, as all omitted members are. Nevertheless,
1673 remove the warning by omitting all members and setting the dwSize
1674 members explicitly.
1675
1676 Closes #3254
1677 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1678 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
1679
1680- openssl: Remove SSLEAY leftovers
1681
1682 Commit 709cf76f6bb7dbac deprecated USE_SSLEAY, as curl since long isn't
1683 compatible with the SSLeay library. This removes the few leftovers that
1684 were omitted in the less frequently used platform targets.
1685
1686 Closes #3270
1687 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1688
1689Daniel Stenberg (16 Nov 2018)
1690- [Elia Tufarolo brought this change]
1691
1692 http_negotiate: do not close connection until negotiation is completed
1693
1694 Fix HTTP POST using CURLAUTH_NEGOTIATE.
1695
1696 Closes #3275
1697
1698- pop3: only do APOP with a valid timestamp
1699
1700 Brought-by: bobmitchell1956 on github
1701 Fixes #3278
1702 Closes #3279
1703
1704Jay Satiro (16 Nov 2018)
1705- [Peter Wu brought this change]
1706
1707 openssl: do not log excess "TLS app data" lines for TLS 1.3
1708
1709 The SSL_CTX_set_msg_callback callback is not just called for the
1710 Handshake or Alert protocols, but also for the raw record header
1711 (SSL3_RT_HEADER) and the decrypted inner record type
1712 (SSL3_RT_INNER_CONTENT_TYPE). Be sure to ignore the latter to avoid
1713 excess debug spam when using `curl -v` against a TLSv1.3-enabled server:
1714
1715 * TLSv1.3 (IN), TLS app data, [no content] (0):
1716
1717 (Following this message, another callback for the decrypted
1718 handshake/alert messages will be be present anyway.)
1719
1720 Closes https://github.com/curl/curl/pull/3281
1721
1722Marc Hoersken (15 Nov 2018)
1723- tests: disable SO_EXCLUSIVEADDRUSE for stunnel on Windows
1724
1725 SO_EXCLUSIVEADDRUSE is on by default on Vista or newer,
1726 but does not work together with SO_REUSEADDR being on.
1727
1728 The default changes were made with stunnel 5.34 and 5.35.
1729
1730Daniel Stenberg (13 Nov 2018)
1731- [Kamil Dudka brought this change]
1732
1733 nss: remove version selecting dead code
1734
1735 Closes #3262
1736
1737- nss: set default max-tls to 1.3/1.2
1738
1739 Fixes #3261
1740
1741Daniel Gustafsson (13 Nov 2018)
1742- tool_cb_wrt: Silence function cast compiler warning
1743
1744 Commit 5bfaa86ceb3c2a9ac474a928e748c4a86a703b33 introduced a new
1745 compiler warning on Windows cross compilation with GCC. See below
1746 for an example of the warning from the autobuild logs (whitespace
1747 edited to fit):
1748
1749 /src/tool_cb_wrt.c:175:9: warning: cast from function call of type
1750 'intptr_t {aka long long int}' to non-matching type 'void *'
1751 [-Wbad-function-cast]
1752 (HANDLE) _get_osfhandle(fileno(outs->stream)),
1753 ^
1754
1755 Store the return value from _get_osfhandle() in an intermediate
1756 variable and cast the variable in WriteConsoleW() rather than the
1757 function call directly to avoid a compiler warning.
1758
1759 In passing, also add inspection of the MultiByteToWideChar() return
1760 value and return failure in case an error is reported.
1761
1762 Closes #3263
1763 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1764 Reviewed-by: Viktor Szakats <commit@vszakats.net>
1765
1766Daniel Stenberg (12 Nov 2018)
1767- nss: fix fallthrough comment to fix picky compiler warning
1768
1769- docs: expanded on some CURLU details
1770
1771- [Tim Rühsen brought this change]
1772
1773 ftp: avoid two unsigned int overflows in FTP listing parser
1774
1775 Curl_ftp_parselist: avoid unsigned integer overflows
1776
1777 The overflow has no real world impact, just avoid it for "best
1778 practice".
1779
1780 Closes #3225
1781
1782- curl: --local-port range was not "including"
1783
1784 The end port number in a given range was not included in the range used,
1785 as it is documented to be.
1786
1787 Reported-by: infinnovation-dev on github
1788 Fixes #3251
1789 Closes #3255
1790
1791- [Jérémy Rocher brought this change]
1792
1793 openssl: support BoringSSL TLS renegotiation
1794
1795 As per BoringSSL porting documentation [1], BoringSSL rejects peer
1796 renegotiations by default.
1797
1798 curl fails when trying to authenticate to server through client
1799 certificate if it is requested by server after the initial TLS
1800 handshake.
1801
1802 Enable renegotiation by default with BoringSSL to get same behavior as
1803 with OpenSSL. This is done by calling SSL_set_renegotiate_mode [2]
1804 which was introduced in commit 1d5ef3bb1eb9 [3].
1805
1806 1 - https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md#tls-renegotiation
1807 2 - https://boringssl.googlesource.com/boringssl/+/master/include/openssl/ssl.h#3482
1808 3 - https://boringssl.googlesource.com/boringssl/+/1d5ef3bb1eb97848617db5e7d633d735a401df86
1809
1810 Signed-off-by: Jérémy Rocher <rocher.jeremy@gmail.com>
1811 Fixes #3258
1812 Closes #3259
1813
1814- HISTORY: add some milestones
1815
1816 Added a few of the more notable milestones in curl history that were
1817 missing. Primarily more recent ones but I also noted some older that
1818 could be worth mentioning.
1819
1820 [ci skip]
1821 Closes #3257
1822
1823Daniel Gustafsson (9 Nov 2018)
1824- KNOWN_BUGS: add --proxy-any connection issue
1825
1826 Add the identified issue with --proxy-any and proxy servers which
1827 advertise authentication schemes other than the supported one.
1828
1829 Closes #876
1830 Closes #3250
1831 Reported-by: NTMan on Github
1832 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1833
1834Daniel Stenberg (9 Nov 2018)
1835- [Jim Fuller brought this change]
1836
1837 setopt: add CURLOPT_CURLU
1838
1839 Allows an application to pass in a pre-parsed URL via a URL handle.
1840
1841 Closes #3227
1842
1843- [Gisle Vanem brought this change]
1844
1845 docs: ESCape "\n" codes
1846
1847 Groff / Troff will display a:
1848 printaf("Errno: %ld\n", error);
1849 as:
1850 printf("Errno: %ld0, error);
1851
1852 when a "\n" is not escaped. Use "\\n" instead.
1853
1854 Closes #3246
1855
1856- curl: --local-port fix followup
1857
1858 Regression by 52db54869e6.
1859
1860 Reported-by: infinnovation-dev on github
1861 Fixes #3248
1862 Closes #3249
1863
1864GitHub (7 Nov 2018)
1865- [Gisle Vanem brought this change]
1866
1867 More "\n" ESCaping
1868
1869Daniel Stenberg (7 Nov 2018)
1870- RELEASE-NOTES: synced
1871
1872- curl: fix --local-port integer overflow
1873
1874 The tool's local port command line range parser didn't check for integer
1875 overflows and could pass "weird" data to libcurl for this option.
1876 libcurl however, has a strict range check for the values so it rejects
1877 anything outside of the accepted range.
1878
1879 Reported-by: Brian Carpenter
1880 Closes #3242
1881
1882- curl: correct the switch() logic in ourWriteOut
1883
1884 Follow-up to e431daf013, as I did the wrong correction for a compiler
1885 warning. It should be a break and not a fall-through.
1886
1887 Pointed-out-by: Frank Gevaerts
1888
1889- [Frank Gevaerts brought this change]
1890
1891 curl: add %{stderr} and %{stdout} for --write-out
1892
1893 Closes #3115
1894
1895Daniel Gustafsson (7 Nov 2018)
1896- winssl: be consistent in Schannel capitalization
1897
1898 The productname from Microsoft is "Schannel", but in infof/failf
1899 reporting we use "schannel". This removes different versions.
1900
1901 Closes #3243
1902 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1903
1904Daniel Stenberg (7 Nov 2018)
1905- TODO: Have the URL API offer IDN decoding
1906
1907 Similar to how URL decoding/encoding is done, we could have URL
1908 functions to convert IDN host names to punycode.
1909
1910 Suggested-by: Alexey Melnichuk
1911 Closes #3232
1912
1913- urlapi: only skip encoding the first '=' with APPENDQUERY set
1914
1915 APPENDQUERY + URLENCODE would skip all equals signs but now it only skip
1916 encoding the first to better allow "name=content" for any content.
1917
1918 Reported-by: Alexey Melnichuk
1919 Fixes #3231
1920 Closes #3231
1921
1922- url: a short host name + port is not a scheme
1923
1924 The function identifying a leading "scheme" part of the URL considered a
1925 few letters ending with a colon to be a scheme, making something like
1926 "short:80" to become an unknown scheme instead of a short host name and
1927 a port number.
1928
1929 Extended test 1560 to verify.
1930
1931 Also fixed test203 to use file_pwd to make it get the correct path on
1932 windows. Removed test 2070 since it was a duplicate of 203.
1933
1934 Assisted-by: Marcel Raad
1935 Reported-by: Hagai Auro
1936 Fixes #3220
1937 Fixes #3233
1938 Closes #3223
1939 Closes #3235
1940
1941- [Sangamkar brought this change]
1942
1943 libcurl: stop reading from paused transfers
1944
1945 In the transfer loop it would previously not acknwledge the pause bit
1946 and continue until drained or loop ended.
1947
1948 Closes #3240
1949
1950Jay Satiro (6 Nov 2018)
1951- tool: add undocumented option --dump-module-paths for win32
1952
1953 - Add an undocumented diagnostic option for Windows to show the full
1954 paths of all loaded modules regardless of whether or not libcurl
1955 initialization succeeds.
1956
1957 This is needed so that in the CI we can get a list of all DLL
1958 dependencies after initialization (when they're most likely to have
1959 finished loading) and then package them as artifacts so that a
1960 functioning build can be downloaded. Also I imagine it may have some use
1961 as a diagnostic for help requests.
1962
1963 Ref: https://github.com/curl/curl/pull/3103
1964
1965 Closes https://github.com/curl/curl/pull/3208
1966
1967- curl_multibyte: fix a malloc overcalculation
1968
1969 Prior to this change twice as many bytes as necessary were malloc'd when
1970 converting wchar to UTF8. To allay confusion in the future I also
1971 changed the variable name for the amount of bytes from len to bytes.
1972
1973 Closes https://github.com/curl/curl/pull/3209
1974
1975Michael Kaufmann (5 Nov 2018)
1976- netrc: don't ignore the login name specified with "--user"
1977
1978 - for "--netrc", don't ignore the login/password specified with "--user",
1979 only ignore the login/password in the URL.
1980 This restores the netrc behaviour of curl 7.61.1 and earlier.
1981 - fix the documentation of CURL_NETRC_REQUIRED
1982 - improve the detection of login/password changes when reading .netrc
1983 - don't read .netrc if both login and password are already set
1984
1985 Fixes #3213
1986 Closes #3224
1987
1988Patrick Monnerat (5 Nov 2018)
1989- OS400: add URL API ccsid wrappers and sync ILE/RPG bindings
1990
1991Daniel Stenberg (5 Nov 2018)
1992- [Yasuhiro Matsumoto brought this change]
1993
1994 curl: fixed UTF-8 in current console code page (Windows)
1995
1996 Fixes #3211
1997 Fixes #3175
1998 Closes #3212
1999
2000- TODO: 2.6 multi upkeep
2001
2002 Closes #3199
2003
2004Daniel Gustafsson (5 Nov 2018)
2005- unittest: make 1652 stable across collations
2006
2007 The previous coding used a format string whose output depended on the
2008 current locale of the environment running the test. Since the gist of
2009 the test is to have a format string, with the actual formatting being
2010 less important, switch to a more stable formatstring with decimals.
2011
2012 Reported-by: Marcel Raad
2013 Closes #3234
2014 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2015 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2016
2017Daniel Stenberg (5 Nov 2018)
2018- Revert "url: a short host name + port is not a scheme"
2019
2020 This reverts commit 226cfa8264cd979eff3fd52c0f3585ef095e7cf2.
2021
2022 This commit caused test failures on appveyor/windows. Work on fixing them is
2023 in #3235.
2024
2025- symbols-in-versions: add missing CURLU_ symbols
2026
2027 ...and fix symbol-scan.pl to also scan urlapi.h
2028
2029 Reported-by: Alexey Melnichuk
2030 Fixes #3226
2031 Closes #3230
2032
2033Daniel Gustafsson (3 Nov 2018)
2034- infof: clearly indicate truncation
2035
2036 The internal buffer in infof() is limited to 2048 bytes of payload plus
2037 an additional byte for NULL termination. Servers with very long error
2038 messages can however cause truncation of the string, which currently
2039 isn't very clear, and leads to badly formatted output.
2040
2041 This appends a "...\n" (or just "..." in case the format didn't with a
2042 newline char) marker to the end of the string to clearly show
2043 that it has been truncated.
2044
2045 Also include a unittest covering infof() to try and catch any bugs
2046 introduced in this quite important function.
2047
2048 Closes #3216
2049 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2050 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2051
2052Michael Kaufmann (3 Nov 2018)
2053- tool_getparam: fix some comments
2054
2055Daniel Stenberg (3 Nov 2018)
2056- url: a short host name + port is not a scheme
2057
2058 The function identifying a leading "scheme" part of the URL considered a few
2059 letters ending with a colon to be a scheme, making something like "short:80"
2060 to become an unknown scheme instead of a short host name and a port number.
2061
2062 Extended test 1560 to verify.
2063
2064 Reported-by: Hagai Auro
2065 Fixes #3220
2066 Closes #3223
2067
2068- URL: fix IPv6 numeral address parser
2069
2070 Regression from 46e164069d1a52. Extended test 1560 to verify.
2071
2072 Reported-by: tpaukrt on github
2073 Fixes #3218
2074 Closes #3219
2075
2076- travis: remove curl before a normal build
2077
2078 on Linux. To make sure the test suite runs with its newly build tool and
2079 doesn't require an external one present.
2080
2081 Bug: #3198
2082 Closes #3200
2083
2084- [Tim Rühsen brought this change]
2085
2086 mprintf: avoid unsigned integer overflow warning
2087
2088 The overflow has no real world impact.
2089 Just avoid it for "best practice".
2090
2091 Code change suggested by "The Infinnovation Team" and Daniel Stenberg.
2092 Closes #3184
2093
2094- Curl_follow: accept non-supported schemes for "fake" redirects
2095
2096 When not actually following the redirect and the target URL is only
2097 stored for later retrieval, curl always accepted "non-supported"
2098 schemes. This was a regression from 46e164069d1a5230.
2099
2100 Reported-by: Brad King
2101 Fixes #3210
2102 Closes #3215
2103
2104Daniel Gustafsson (2 Nov 2018)
2105- openvms: fix example name
2106
2107 Commit efc696a2e09225bfeab4 renamed persistant.c to persistent.c to
2108 fix the typo in the name, but missed to update the OpenVMS package
2109 files which still looked for the old name.
2110
2111 Closes #3217
2112 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2113 Reviewed-by: Viktor Szakats <commit@vszakats.net>
2114
2115Daniel Stenberg (1 Nov 2018)
2116- configure: show CFLAGS, LDFLAGS etc in summary
2117
2118 To make it easier to understand other people's and remote builds etc.
2119
2120 Closes #3207
2121
2122- version: bump for next cycle
2123
2124- axtls: removed
2125
2126 As has been outlined in the DEPRECATE.md document, the axTLS code has
2127 been disabled for 6 months and is hereby removed.
2128
2129 Use a better supported TLS library!
2130
2131 Assisted-by: Daniel Gustafsson
2132 Closes #3194
2133
2134- [marcosdiazr brought this change]
2135
2136 schannel: make CURLOPT_CERTINFO support using Issuer chain
2137
2138 Closes #3197
2139
2140- travis: build with sanitize=address,undefined,signed-integer-overflow
2141
2142 ... using clang
2143
2144 Closes #3190
2145
2146- schannel: use Curl_ prefix for global private symbols
2147
2148 Curl_verify_certificate() must use the Curl_ prefix since it is globally
2149 available in the lib and otherwise steps outside of our namespace!
2150
2151 Closes #3201
2152
2153Kamil Dudka (1 Nov 2018)
2154- tests: drop http_pipe.py script no longer used
2155
2156 It is unused since commit f7208df7d9d5cd5e15e2d89237e828f32b63f135.
2157
2158 Closes #3204
2159
2160Daniel Stenberg (31 Oct 2018)
2161- runtests: use the local curl for verifying
2162
2163 ... revert the mistaken change brought in commit 8440616f53.
2164
2165 Reported-by: Alessandro Ghedini
2166 Bug: https://curl.haxx.se/mail/lib-2018-10/0118.html
2167
2168 Closes #3198
2169
Elliott Hughesa93fb052018-12-12 14:22:48 -08002170Version 7.62.0 (30 Oct 2018)
2171
2172Daniel Stenberg (30 Oct 2018)
2173- RELEASE-NOTES: 7.62.0
2174
2175- THANKS: 7.62.0 status
2176
2177Daniel Gustafsson (30 Oct 2018)
2178- vtls: add MesaLink to curl_sslbackend enum
2179
2180 MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
2181 backend was never added to the curl_sslbackend enum in curl/curl.h.
2182 This adds the new backend to the enum and updates the relevant docs.
2183
2184 Closes #3195
2185 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2186
2187Daniel Stenberg (30 Oct 2018)
2188- [Ruslan Baratov brought this change]
2189
2190 cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
2191
2192 Closes #3191
2193
2194- test2080: verify the fix for CVE-2018-16842
2195
2196- voutf: fix bad arethmetic when outputting warnings to stderr
2197
2198 CVE-2018-16842
2199 Reported-by: Brian Carpenter
2200 Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
2201
2202- [Tuomo Rinne brought this change]
2203
2204 cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
2205
2206 Closes #3123
2207
2208- [Tuomo Rinne brought this change]
2209
2210 cmake: add find_dependency call for ZLIB to CMake config file
2211
2212- [Tuomo Rinne brought this change]
2213
2214 cmake: add support for transitive ZLIB target
2215
2216- unit1650: fix "null pointer passed as argument 1 to memcmp"
2217
2218 Detected by UndefinedBehaviorSanitizer
2219
2220 Closes #3187
2221
2222- travis: add a "make tidy" build that runs clang-tidy
2223
2224 Closes #3182
2225
2226- unit1300: fix stack-use-after-scope AddressSanitizer warning
2227
2228 Closes #3186
2229
2230- Curl_auth_create_plain_message: fix too-large-input-check
2231
2232 CVE-2018-16839
2233 Reported-by: Harry Sintonen
2234 Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
2235
2236- Curl_close: clear data->multi_easy on free to avoid use-after-free
2237
2238 Regression from b46cfbc068 (7.59.0)
2239 CVE-2018-16840
2240 Reported-by: Brian Carpenter (Geeknik Labs)
2241
2242 Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
2243
2244- [randomswdev brought this change]
2245
2246 system.h: use proper setting with Sun C++ as well
2247
2248 system.h selects the proper Sun settings when __SUNPRO_C is defined. The
2249 Sun compiler does not define it when compiling C++ files. I'm adding a
2250 check also on __SUNPRO_CC to allow curl to work properly also when used
2251 in a C++ project on Sun Solaris.
2252
2253 Closes #3181
2254
2255- rand: add comment to skip a clang-tidy false positive
2256
2257- test1651: unit test Curl_extract_certinfo()
2258
2259 The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
2260
2261- x509asn1: always check return code from getASN1Element()
2262
2263- Makefile: add 'tidy' target that runs clang-tidy
2264
2265 Available in the root, src and lib dirs.
2266
2267 Closes #3163
2268
2269- RELEASE-PROCEDURE: adjust the release dates
2270
2271 See: https://curl.haxx.se/mail/lib-2018-10/0107.html
2272
2273Patrick Monnerat (27 Oct 2018)
2274- x509asn1: suppress left shift on signed value
2275
2276 Use an unsigned variable: as the signed operation behavior is undefined,
2277 this change silents clang-tidy about it.
2278
2279 Ref: https://github.com/curl/curl/pull/3163
2280 Reported-By: Daniel Stenberg
2281
2282Michael Kaufmann (27 Oct 2018)
2283- multi: Fix error handling in the SENDPROTOCONNECT state
2284
2285 If Curl_protocol_connect() returns an error code,
2286 handle the error instead of switching to the next state.
2287
2288 Closes #3170
2289
2290Daniel Stenberg (27 Oct 2018)
2291- RELEASE-NOTES: synced
2292
2293- openssl: output the correct cipher list on TLS 1.3 error
2294
2295 When failing to set the 1.3 cipher suite, the wrong string pointer would
2296 be used in the error message. Most often saying "(nil)".
2297
2298 Reported-by: Ricky-Tigg on github
2299 Fixes #3178
2300 Closes #3180
2301
2302- docs/CIPHERS: fix the TLS 1.3 cipher names
2303
2304 ... picked straight from the OpenSSL man page:
2305 https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
2306
2307 Reported-by: Ricky-Tigg on github
2308 Bug: #3178
2309
2310Marcel Raad (27 Oct 2018)
2311- travis: install gnutls-bin package
2312
2313 This is required for gnutls-serv, which enables a few more tests.
2314
2315 Closes https://github.com/curl/curl/pull/2958
2316
2317Daniel Gustafsson (26 Oct 2018)
2318- ssh: free the session on init failures
2319
2320 Ensure to clear the session object in case the libssh2 initialization
2321 fails.
2322
2323 It could be argued that the libssh2 error function should be called to
2324 get a proper error message in this case. But since the only error path
2325 in libssh2_knownhost_init() is memory a allocation failure it's safest
2326 to avoid since the libssh2 error handling allocates memory.
2327
2328 Closes #3179
2329 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2330
2331Daniel Stenberg (26 Oct 2018)
2332- docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
2333
2334 ... I'm moving it up one week due to travels. The rest stays.
2335
2336- [Daniel Gustafsson brought this change]
2337
2338 openssl: make 'done' a proper boolean
2339
2340 Closes #3176
2341
2342- gtls: Values stored to but never read
2343
2344 Detected by clang-tidy
2345
2346 Closes #3176
2347
2348- [Alexey Eremikhin brought this change]
2349
2350 curl.1: --ipv6 mutexes ipv4 (fixed typo)
2351
2352 Fixes #3171
2353 Closes #3172
2354
2355- tool_main: make TerminalSettings static
2356
2357 Reported-by: Gisle Vanem
2358 Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
2359 Closes #3161
2360
2361- curl-config.in: remove dependency on bc
2362
2363 Reported-by: Dima Pasechnik
2364 Fixes #3143
2365 Closes #3174
2366
2367- [Gisle Vanem brought this change]
2368
2369 rtmp: fix for compiling with lwIP
2370
2371 Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
2372 curl_rtmp.c(223,3): error: use of undeclared identifier 'setsockopt'
2373 setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
2374 ^
2375 curl_rtmp.c(41,32): note: expanded from macro 'setsockopt'
2376 #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
2377 ^
2378 Closes #3155
2379
2380- configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
2381
2382 Follow-up to #3166 which did the cmake part of this. This type/define is
2383 not used.
2384
2385 Closes #3168
2386
2387- [Ruslan Baratov brought this change]
2388
2389 cmake: remove unused variables
2390
2391 Remove variables:
2392 * HAVE_SOCKLEN_T
2393 * CURL_SIZEOF_CURL_SOCKLEN_T
2394 * CURL_TYPEOF_CURL_SOCKLEN_T
2395
2396 Closes #3166
2397
2398Michael Kaufmann (25 Oct 2018)
2399- urldata: Fix comment in header
2400
2401 The "connecting" function is used by multiple protocols, not only FTP
2402
2403- netrc: free temporary strings if memory allocation fails
2404
2405 - Change the inout parameters after all needed memory has been
2406 allocated. Do not change them if something goes wrong.
2407 - Free the allocated temporary strings if strdup() fails.
2408
2409 Closes #3122
2410
2411Daniel Stenberg (24 Oct 2018)
2412- [Ruslan Baratov brought this change]
2413
2414 config: Remove unused SIZEOF_VOIDP
2415
2416 Closes #3162
2417
2418- RELEASE-NOTES: synced
2419
2420GitHub (23 Oct 2018)
2421- [Gisle Vanem brought this change]
2422
2423 Fix for compiling with lwIP (3)
2424
2425 lwIP on Windows does not have a WSAIoctl() function.
2426 But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.
2427
2428Daniel Stenberg (23 Oct 2018)
2429- Curl_follow: return better errors on URL problems
2430
2431 ... by making the converter function global and accessible.
2432
2433 Closes #3153
2434
2435- Curl_follow: remove remaining free(newurl)
2436
2437 Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
2438 URL.
2439
2440 Reported-by: Michael Kaufmann
2441 Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
2442 ent-30985666
2443
2444Daniel Gustafsson (23 Oct 2018)
2445- headers: end all headers with guard comment
2446
2447 Most headerfiles end with a /* <headerguard> */ comment, but it was
2448 missing from some. The comment isn't the most important part of our
2449 code documentation but consistency has an intrinsic value in itself.
2450 This adds header guard comments to the files that were lacking it.
2451
2452 Closes #3158
2453 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
2454 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2455
2456Jay Satiro (23 Oct 2018)
2457- CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
2458
2459 Closes https://github.com/curl/curl/pull/3159
2460
2461Daniel Stenberg (20 Oct 2018)
2462- docs/BUG-BOUNTY: the sponsors actually decide the amount
2463
2464 Retract the previous approach as the sponsors will be the ones to set the
2465 final amounts.
2466
2467 Closes #3152
2468 [ci skip]
2469
2470- multi: avoid double-free
2471
2472 Curl_follow() no longer frees the string. Make sure it happens in the
2473 caller function, like we normally handle allocations.
2474
2475 This bug was introduced with the use of the URL API internally, it has
2476 never been in a release version
2477
2478 Reported-by: Dario Weißer
2479 Closes #3149
2480
2481- multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
2482
2483 Otherwise, closing that handle can still cause surprises!
2484
2485 Reported-by: Martin Ankerl
2486 Fixes #3138
2487 Closes #3147
2488
2489Marcel Raad (19 Oct 2018)
2490- VS projects: add USE_IPV6
2491
2492 The Visual Studio builds didn't use IPv6. Add it to all projects since
2493 Visual Studio 2008, which is verified to build via AppVeyor.
2494
2495 Closes https://github.com/curl/curl/pull/3137
2496
2497- config_win32: enable LDAPS
2498
2499 As done in the autotools and CMake builds by default.
2500
2501 Closes https://github.com/curl/curl/pull/3137
2502
2503Daniel Stenberg (18 Oct 2018)
2504- travis: add build for "configure --disable-verbose"
2505
2506 Closes #3144
2507
2508Kamil Dudka (17 Oct 2018)
2509- tool_cb_hdr: handle failure of rename()
2510
2511 Detected by Coverity.
2512
2513 Closes #3140
2514 Reviewed-by: Jay Satiro
2515
2516Daniel Stenberg (17 Oct 2018)
2517- RELEASE-NOTES: synced
2518
2519- docs/SECURITY-PROCESS: the hackerone IBB program drops curl
2520
2521 ... now there's only BountyGraph.
2522
2523Jay Satiro (16 Oct 2018)
2524- [Matthew Whitehead brought this change]
2525
2526 x509asn1: Fix SAN IP address verification
2527
2528 For IP addresses in the subject alternative name field, the length
2529 of the IP address (and hence the number of bytes to perform a
2530 memcmp on) is incorrectly calculated to be zero. The code previously
2531 subtracted q from name.end. where in a successful case q = name.end
2532 and therefore addrlen equalled 0. The change modifies the code to
2533 subtract name.beg from name.end to calculate the length correctly.
2534
2535 The issue only affects libcurl with GSKit SSL, not other SSL backends.
2536 The issue is not a security issue as IP verification would always fail.
2537
2538 Fixes #3102
2539 Closes #3141
2540
2541Daniel Gustafsson (15 Oct 2018)
2542- INSTALL: mention mesalink in TLS section
2543
2544 Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
2545 MesaLink vtls backend, but missed updating the TLS section containing
2546 supported backends in the docs.
2547
2548 Closes #3134
2549 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2550
2551Marcel Raad (14 Oct 2018)
2552- nonblock: fix unused parameter warning
2553
2554 If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
2555 used.
2556
2557Michael Kaufmann (13 Oct 2018)
2558- Curl_follow: Always free the passed new URL
2559
2560 Closes #3124
2561
2562Viktor Szakats (12 Oct 2018)
2563- replace rawgit links [ci skip]
2564
2565 Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
2566 Ref: https://news.ycombinator.com/item?id=18202481
2567 Closes https://github.com/curl/curl/pull/3131
2568
2569Daniel Stenberg (12 Oct 2018)
2570- docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
2571
2572 [ci skip]
2573
2574- travis: make distcheck scan for BOM markers
2575
2576 and remove BOM from projects/wolfssl_override.props
2577
2578 Closes #3126
2579
2580Marcel Raad (11 Oct 2018)
2581- CMake: remove BOM
2582
2583 Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
2584
2585 Reported-by: Viktor Szakats
2586 Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136
2587
2588Daniel Gustafsson (10 Oct 2018)
2589- transfer: fix typo in comment
2590
2591Michael Kaufmann (10 Oct 2018)
2592- docs: add "see also" links for SSL options
2593
2594 - link TLS 1.2 and TLS 1.3 options
2595 - link proxy and non-proxy options
2596
2597 Closes #3121
2598
2599Marcel Raad (10 Oct 2018)
2600- AppVeyor: remove BDIR variable that sneaked in again
2601
2602 Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
2603 again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.
2604
2605- CMake: disable -Wpedantic-ms-format
2606
2607 As done in the autotools build. This is required for MinGW, which
2608 supports only %I64 for printing 64-bit values, but warns about it.
2609
2610 Closes https://github.com/curl/curl/pull/3120
2611
2612Viktor Szakats (9 Oct 2018)
2613- ldap: show precise LDAP call in error message on Windows
2614
2615 Also add a unique but common text ('bind via') to make it
2616 easy to grep this specific failure regardless of platform.
2617
2618 Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
2619 Closes https://github.com/curl/curl/pull/3118
2620 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2621 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2622
2623Daniel Stenberg (9 Oct 2018)
2624- docs/DEPRECATE: minor reformat to render nicer on web
2625
2626Daniel Gustafsson (9 Oct 2018)
2627- CURLOPT_SSL_VERIFYSTATUS: Fix typo
2628
2629 Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
2630
2631Marcel Raad (9 Oct 2018)
2632- curl_setup: define NOGDI on Windows
2633
2634 This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
2635 on MinGW.
2636
2637 Closes https://github.com/curl/curl/pull/3113
2638
2639- Windows: fixes for MinGW targeting Windows Vista
2640
2641 Classic MinGW has neither InitializeCriticalSectionEx nor
2642 GetTickCount64, independent of the target Windows version.
2643
2644 Closes https://github.com/curl/curl/pull/3113
2645
2646Daniel Stenberg (8 Oct 2018)
2647- TODO: fixed 'API for URL parsing/splitting'
2648
2649Daniel Gustafsson (8 Oct 2018)
2650- KNOWN_BUGS: Fix various typos
2651
2652 Closes #3112
2653 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2654
2655Viktor Szakats (8 Oct 2018)
2656- spelling fixes [ci skip]
2657
2658 as detected by codespell 1.14.0
2659
2660 Closes https://github.com/curl/curl/pull/3114
2661 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2662
2663Daniel Stenberg (8 Oct 2018)
2664- RELEASE-NOTES: synced
2665
2666- curl_ntlm_wb: check aprintf() return codes
2667
2668 ... when they return NULL we're out of memory and MUST return failure.
2669
2670 closes #3111
2671
2672- docs/BUG-BOUNTY: proposed additional docs
2673
2674 Bug bounty explainer. See https://bountygraph.com/programs/curl
2675
2676 Closes #3067
2677
2678- [Rick Deist brought this change]
2679
2680 hostip: fix check on Curl_shuffle_addr return value
2681
2682 Closes #3110
2683
2684- FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
2685
2686 Now FILE transfers send headers to the header callback like HTTP and
2687 other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
2688 work for FILE in the callbacks.
2689
2690 Makes "curl -i file://.." and "curl -I file://.." work like before
2691 again. Applied the bold header logic to them too.
2692
2693 Regression from c1c2762 (7.61.0)
2694
2695 Reported-by: Shaun Jackman
2696 Fixes #3083
2697 Closes #3101
2698
2699Daniel Gustafsson (7 Oct 2018)
2700- gskit: make sure to terminate version string
2701
2702 In case a very small buffer was passed to the version function, it could
2703 result in the buffer not being NULL-terminated since strncpy() doesn't
2704 guarantee a terminator on an overflowed buffer. Rather than adding code
2705 to terminate (and handle zero-sized buffers), move to using snprintf()
2706 instead like all the other vtls backends.
2707
2708 Closes #3105
2709 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2710 Reviewed-by: Viktor Szakats <commit@vszakats.net>
2711
2712- TODO: add LD_PRELOAD support on macOS
2713
2714 Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.
2715
2716- runtests: skip ld_preload tests on macOS
2717
2718 The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
2719 requiring it.
2720
2721 Fixes #2394
2722 Closes #3106
2723 Reported-by: Github user @jakirkham
2724 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2725
2726Marcel Raad (7 Oct 2018)
2727- AppVeyor: use Debug builds to run tests
2728
2729 This enables more tests.
2730
2731 Closes https://github.com/curl/curl/pull/3104
2732
2733- AppVeyor: add HTTP_ONLY build
2734
2735 Closes https://github.com/curl/curl/pull/3104
2736
2737- AppVeyor: add WinSSL builds
2738
2739 Use the oldest and latest Windows SDKs for them.
2740 Also, remove all but one OpenSSL build.
2741
2742 Closes https://github.com/curl/curl/pull/3104
2743
2744- AppVeyor: add remaining Visual Studio versions
2745
2746 This adds Visual Studio 9 and 10 builds.
2747 There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
2748 build. Also, VC9 cannot be used for running the test suite.
2749
2750 Closes https://github.com/curl/curl/pull/3104
2751
2752- AppVeyor: break long line
2753
2754 Closes https://github.com/curl/curl/pull/3104
2755
2756- AppVeyor: remove unused BDIR variable
2757
2758 Closes https://github.com/curl/curl/pull/3104
2759
2760Daniel Stenberg (6 Oct 2018)
2761- test2100: test DoH using IPv4-only
2762
2763 To make it only send one DoH request and avoid the race condition that
2764 could lead to the requests getting sent in reversed order and thus
2765 making it hard to compare in the test case.
2766
2767 Fixes #3107
2768 Closes #3108
2769
2770- tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
2771
2772 [ci skip]
2773
2774- RELEASE-NOTES: synced
2775
2776- [Dmitry Kostjuchenko brought this change]
2777
2778 timeval: fix use of weak symbol clock_gettime() on Apple platforms
2779
2780 Closes #3048
2781
2782- doh: keep the IPv4 address in (original) network byte order
2783
2784 Ideally this will fix the reversed order shown in SPARC tests:
2785
2786 resp 8: Expected 127.0.0.1 got 1.0.0.127
2787
2788 Closes #3091
2789
2790Jay Satiro (5 Oct 2018)
2791- INTERNALS.md: wrap lines longer than 79
2792
2793Daniel Gustafsson (5 Oct 2018)
2794- INTERNALS: escape reference to parameter
2795
2796 The parameter reference <string> was causing rendering issues in the
2797 generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
2798 tick escaping it.
2799
2800 Closes #3099
2801 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
2802 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2803
2804- checksrc: handle zero scoped ignore commands
2805
2806 If a !checksrc! disable command specified to ignore zero errors, it was
2807 still added to the ignore block even though nothing was ignored. While
2808 there were no blocks ignored that shouldn't be ignored, the processing
2809 ended with with a warning:
2810
2811 <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
2812 /* !checksrc! disable LONGLINE 0 */
2813 ^
2814 Fix by instead treating a zero ignore as a a badcommand and throw a
2815 warning for that one.
2816
2817 Closes #3096
2818 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2819
2820- checksrc: enable strict mode and warnings
2821
2822 Enable strict and warnings mode for checksrc to ensure we aren't missing
2823 anything due to bugs in the checking code. This uncovered a few things
2824 which are all fixed in this commit:
2825
2826 * several variables were used uninitialized
2827 * several variables were not defined in the correct scope
2828 * the whitelist filehandle was read even if the file didn't exist
2829 * the enable_warn() call when a disable counter had expired was passing
2830 incorrect variables, but since the checkwarn() call is unlikely to hit
2831 (the counter is only decremented to zero on actual ignores) it didn't
2832 manifest a problem.
2833
2834 Closes #3090
2835 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2836 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2837
2838Marcel Raad (5 Oct 2018)
2839- CMake: suppress MSVC warning C4127 for libtest
2840
2841 It's issued by older Windows SDKs (prior to version 8.0).
2842
2843Sergei Nikulov (5 Oct 2018)
2844- Merge branch 'dmitrykos-fix_missing_CMake_defines'
2845
2846- [Dmitry Kostjuchenko brought this change]
2847
2848 cmake: test and set missed defines during configuration
2849
2850 Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
2851
2852 Closes #3097
2853
2854Marcel Raad (5 Oct 2018)
2855- AppVeyor: disable test 500
2856
2857 It almost always results in
2858 "starttransfer vs total: 0.000001 0.000000".
2859 I cannot reproduce this locally, so disable it for now.
2860
2861 Closes https://github.com/curl/curl/pull/3100
2862
2863- AppVeyor: set custom install prefix
2864
2865 CMake's default has spaces and in 32-bit mode parentheses, which result
2866 in syntax errors in curl-config.
2867
2868 Closes https://github.com/curl/curl/pull/3100
2869
2870- AppVeyor: Remove non-SSL non-test builds
2871
2872 They don't add much value.
2873
2874 Closes https://github.com/curl/curl/pull/3100
2875
2876- AppVeyor: run test suite
2877
2878 Use the preinstalled MSYS2 bash for that.
2879 Disable test 1139 as the CMake build doesn't generate curl.1.
2880
2881 Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
2882 Closes https://github.com/curl/curl/pull/3100
2883
2884- AppVeyor: use in-tree build
2885
2886 Required to run the tests.
2887
2888 Closes https://github.com/curl/curl/pull/3100
2889
2890Daniel Stenberg (4 Oct 2018)
2891- doh: make sure TTL isn't re-inited by second (discarded?) response
2892
2893 Closes #3092
2894
2895- test320: strip out more HTML when comparing
2896
2897 To make the test case work with different gnutls-serv versions better.
2898
2899 Reported-by: Kamil Dudka
2900 Fixes #3093
2901 Closes #3094
2902
2903Marcel Raad (4 Oct 2018)
2904- runtests: use Windows paths for Windows curl
2905
2906 curl generated by CMake's Visual Studio generator has "Windows" in the
2907 version number.
2908
2909Daniel Stenberg (4 Oct 2018)
2910- [Colin Hogben brought this change]
2911
2912 tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
2913
2914 Fix problems caused by differences in treatment of bytes objects between
2915 python2 and python3.
2916
2917 Fixes #2929
2918 Closes #3080
2919
2920Daniel Gustafsson (3 Oct 2018)
2921- memory: ensure to check allocation results
2922
2923 The result of a memory allocation should always be checked, as we may
2924 run under memory pressure where even a small allocation can fail. This
2925 adds checking and error handling to a few cases where the allocation
2926 wasn't checked for success. In the ftp case, the freeing of the path
2927 variable is moved ahead of the allocation since there is little point
2928 in keeping it around across the strdup, and the separation makes for
2929 more readable code. In nwlib, the lock is aslo freed in the error path.
2930
2931 Also bumps the copyright years on affected files.
2932
2933 Closes #3084
2934 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
2935 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2936
2937- comment: Fix multiple typos in function parameters
2938
2939 Ensure that the parameters in the comment match the actual names in the
2940 prototype.
2941
2942 Closes #3079
2943 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2944
2945- CURLOPT_SSLVERSION.3: fix typos and consistent spelling
2946
2947 Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
2948 already done in all but a few cases. Also fix a few typos.
2949
2950 Closes #3076
2951 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
2952 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2953
2954- SECURITY-PROCESS: make links into hyperlinks
2955
2956 Use proper Markdown hyperlink format for the Bountygraph links in order
2957 for the generated website page to be more user friendly. Also link to
2958 the sponsors to give them a little extra credit.
2959
2960 Closes #3082
2961 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2962
2963Jay Satiro (3 Oct 2018)
2964- CURLOPT_HEADER.3: fix typo
2965
2966- nss: fix nssckbi module loading on Windows
2967
2968 - Use .DLL extension instead of .so to load modules on Windows.
2969
2970 Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
2971 Reported-by: Maxime Legros
2972
2973 Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
2974
2975 Closes https://github.com/curl/curl/pull/3086
2976
2977- data-binary.d: clarify default content-type is x-www-form-urlencoded
2978
2979 - Advise user that --data-binary sends a default content type of
2980 x-www-form-urlencoded, and to have the data treated as arbitrary
2981 binary data by the server set the content-type header to octet-stream.
2982
2983 Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
2984
2985 Closes https://github.com/curl/curl/pull/3085
2986
2987Marcel Raad (2 Oct 2018)
2988- test1299: use single quotes around asterisk
2989
2990 Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
2991
2992Daniel Stenberg (2 Oct 2018)
2993- docs/CIPHERS: mention the colon separation for OpenSSL
2994
2995 Bug: #3077
2996
2997- runtests: ignore disabled even when ranges are given
2998
2999 runtests.pl support running a range of tests, like "44 to 127". Starting
3000 now, the code makes sure that even such given ranges will ignore tests
3001 that are marked as disabled.
3002
3003 Disabled tests can still be run by explictly specifying that test
3004 number.
3005
3006 Closes #3075
3007
3008- urlapi: starting with a drive letter on win32 is not an abs url
3009
3010 ... and libcurl doesn't support any single-letter URL schemes (if there
3011 even exist any) so it should be fairly risk-free.
3012
3013 Reported-by: Marcel Raad
3014
3015 Fixes #3070
3016 Closes #3071
3017
3018Marcel Raad (2 Oct 2018)
3019- doh: fix curl_easy_setopt argument type
3020
3021 CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
3022 MinGW.
3023
3024Daniel Stenberg (2 Oct 2018)
3025- RELEASE-NOTES: synced
3026
3027Jay Satiro (1 Oct 2018)
3028- [Ruslan Baratov brought this change]
3029
3030 CMake: Improve config installation
3031
3032 Use 'GNUInstallDirs' standard module to set destinations of installed
3033 files.
3034
3035 Use uppercase "CURL" names instead of lowercase "curl" to match standard
3036 'FindCURL.cmake' CMake module:
3037 * https://cmake.org/cmake/help/latest/module/FindCURL.html
3038
3039 Meaning:
3040 * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
3041 * User should call 'find_package(CURL)' instead of 'find_package(curl)'
3042
3043 Use 'configure_package_config_file' function to generate
3044 'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
3045 file smaller and handle components better. E.g. current configuration
3046 report no error if user specified unknown components (note: new
3047 configuration expects no components, report error if user will try to
3048 specify any).
3049
3050 Closes https://github.com/curl/curl/pull/2849
3051
3052Daniel Stenberg (1 Oct 2018)
3053- test1650: make it depend on http/2
3054
3055 Follow-up to 570008c99da0ccbb as it gets link errors.
3056
3057 Reported-by: Michael Kaufmann
3058 Closes #3068
3059
3060- [Nate Prewitt brought this change]
3061
3062 MANUAL: minor grammar fix
3063
3064 Noticed a typo reading through the docs.
3065
3066 Closes #3069
3067
3068- doh: only build if h2 enabled
3069
3070 The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
3071 of HTTP for use with DoH".
3072
3073 Reported-by: Marcel Raad
3074 Closes #3066
3075
3076- test2100: require http2 to run
3077
3078 Reported-by: Marcel Raad
3079 Fixes #3064
3080 Closes #3065
3081
3082- multi: fix memory leak in content encoding related error path
3083
3084 ... a missing multi_done() call.
3085
3086 Credit to OSS-Fuzz
3087 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
3088 Closes #3063
3089
3090- travis: bump the Secure Transport build to use xcode 10
3091
3092 Due to an issue with travis
3093 (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
3094 Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
3095 an alternative and as it builds curl+darwinssl fine that seems like a
3096 better choice.
3097
3098 Closes #3062
3099
3100- [Rich Turner brought this change]
3101
3102 curl: enabled Windows VT Support and UTF-8 output
3103
3104 Enabled Console VT support (if running OS supports VT) in tool_main.c.
3105
3106 Fixes #3008
3107 Closes #3011
3108
3109- multi: fix location URL memleak in error path
3110
3111 Follow-up to #3044 - fix a leak OSS-Fuzz detected
3112 Closes #3057
3113
3114Sergei Nikulov (28 Sep 2018)
3115- cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)
3116
3117- [Brad King brought this change]
3118
3119 cmake: Backport to work with CMake 3.0 again
3120
3121 Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
3122 instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
3123 bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
3124 issue #2746. This broke support for users on older versions of CMake
3125 even if they just want to build curl and do not care whether transitive
3126 dependencies work.
3127
3128 Backport the logic to work with CMake 3.0 again by implementing the
3129 fix only when the version of CMake is at least 3.4.
3130
3131Marcel Raad (27 Sep 2018)
3132- curl_threads: fix classic MinGW compile break
3133
3134 Classic MinGW still has _beginthreadex's return type as unsigned long
3135 instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
3136
3137 [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
3138 [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
3139
3140 Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
3141 Closes https://github.com/curl/curl/pull/3051
3142
3143Daniel Stenberg (26 Sep 2018)
3144- configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
3145
3146 fix a few leftovers
3147
3148 Fixes #3006
3149 Closes #3049
3150
3151- [Doron Behar brought this change]
3152
3153 example/htmltidy: fix include paths of tidy libraries
3154
3155 Closes #3050
3156
3157- RELEASE-NOTES: synced
3158
3159- Curl_http2_done: fix memleak in error path
3160
3161 Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
3162 early failures.
3163
3164 Detected by OSS-Fuzz
3165
3166 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
3167 Closes #3046
3168
3169- http: fix memleak in rewind error path
3170
3171 If the rewind would fail, a strdup() would not get freed.
3172
3173 Detected by OSS-Fuzz
3174
3175 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
3176 Closes #3044
3177
3178Viktor Szakats (24 Sep 2018)
3179- test320: fix regression in [ci skip]
3180
3181 The value in question is coming directly from `gnutls-serv`, so it cannot
3182 be modified freely.
3183
3184 Reported-by: Marcel Raad
3185 Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004
3186
3187Daniel Stenberg (24 Sep 2018)
3188- Curl_retry_request: fix memory leak
3189
3190 Detected by OSS-Fuzz
3191
3192 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
3193 Closes #3042
3194
3195- openssl: load built-in engines too
3196
3197 Regression since 38203f1
3198
3199 Reported-by: Jean Fabrice
3200 Fixes #3023
3201 Closes #3040
3202
3203- [Christian Heimes brought this change]
3204
3205 OpenSSL: enable TLS 1.3 post-handshake auth
3206
3207 OpenSSL 1.1.1 requires clients to opt-in for post-handshake
3208 authentication.
3209
3210 Fixes: https://github.com/curl/curl/issues/3026
3211 Signed-off-by: Christian Heimes <christian@python.org>
3212
3213 Closes https://github.com/curl/curl/pull/3027
3214
3215- [Even Rouault brought this change]
3216
3217 Curl_dedotdotify(): always nul terminate returned string.
3218
3219 This fixes potential out-of-buffer access on "file:./" URL
3220
3221 $ valgrind curl "file:./"
3222 ==24516== Memcheck, a memory error detector
3223 ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
3224 ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
3225 ==24516== Command: /home/even/install-curl-git/bin/curl file:./
3226 ==24516==
3227 ==24516== Conditional jump or move depends on uninitialised value(s)
3228 ==24516== at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
3229 ==24516== by 0x4EBB315: seturl (urlapi.c:801)
3230 ==24516== by 0x4EBB568: parseurl (urlapi.c:861)
3231 ==24516== by 0x4EBC509: curl_url_set (urlapi.c:1199)
3232 ==24516== by 0x4E644C6: parseurlandfillconn (url.c:2044)
3233 ==24516== by 0x4E67AEF: create_conn (url.c:3613)
3234 ==24516== by 0x4E68A4F: Curl_connect (url.c:4119)
3235 ==24516== by 0x4E7F0A4: multi_runsingle (multi.c:1440)
3236 ==24516== by 0x4E808E5: curl_multi_perform (multi.c:2173)
3237 ==24516== by 0x4E7558C: easy_transfer (easy.c:686)
3238 ==24516== by 0x4E75801: easy_perform (easy.c:779)
3239 ==24516== by 0x4E75868: curl_easy_perform (easy.c:798)
3240
3241 Was originally spotted by
3242 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
3243 Credit to OSS-Fuzz
3244
3245 Closes #3039
3246
3247Viktor Szakats (23 Sep 2018)
3248- update URLs in tests
3249
3250 - and one in docs/MANUAL as well
3251
3252 Closes https://github.com/curl/curl/pull/3038
3253
3254- whitespace fixes
3255
3256 - replace tabs with spaces where possible
3257 - remove line ending spaces
3258 - remove double/triple newlines at EOF
3259 - fix a non-UTF-8 character
3260 - cleanup a few indentations/line continuations
3261 in manual examples
3262
3263 Closes https://github.com/curl/curl/pull/3037
3264
3265Daniel Stenberg (23 Sep 2018)
3266- http: add missing return code check
3267
3268 Detected by Coverity. CID 1439610.
3269
3270 Follow-up from 46e164069d1a523
3271
3272 Closes #3034
3273
3274- ftp: don't access pointer before NULL check
3275
3276 Detected by Coverity. CID 1439611.
3277
3278 Follow-up from 46e164069d1a523
3279
3280- unit1650: fix out of boundary access
3281
3282 Fixes #2987
3283 Closes #3035
3284
3285Viktor Szakats (23 Sep 2018)
3286- docs/examples: URL updates
3287
3288 - also update two URLs outside of docs/examples
3289 - fix spelling of filename persistant.c
3290 - fix three long lines that started failing checksrc.pl
3291
3292 Closes https://github.com/curl/curl/pull/3036
3293
3294- examples/Makefile.m32: sync with core [ci skip]
3295
3296 also:
3297 - fix two warnings in synctime.c (one of them Windows-specific)
3298 - upgrade URLs in synctime.c and remove a broken one
3299
3300 Closes https://github.com/curl/curl/pull/3033
3301
3302Daniel Stenberg (22 Sep 2018)
3303- examples/parseurl.c: show off the URL API a bit
3304
3305 Closes #3030
3306
3307- SECURITY-PROCESS: mention the bountygraph program [ci skip]
3308
3309 Closes #3032
3310
3311- url: use the URL API internally as well
3312
3313 ... to make it a truly unified URL parser.
3314
3315 Closes #3017
3316
3317Viktor Szakats (22 Sep 2018)
3318- URL and mailmap updates, remove an obsolete directory [ci skip]
3319
3320 Closes https://github.com/curl/curl/pull/3031
3321
3322Daniel Stenberg (22 Sep 2018)
3323- RELEASE-NOTES: synced
3324
3325- configure: force-use -lpthreads on HPUX
3326
3327 When trying to detect pthreads use on HPUX the checks will succeed
3328 without the correct -l option but then end up failing at run-time.
3329
3330 Reported-by: Eason-Yu on github
3331 Fixes #2697
3332 Closes #3025
3333
3334- [Erik Minekus brought this change]
3335
3336 Curl_saferealloc: Fixed typo in docblock
3337
3338 Closes #3029
3339
3340- urlapi: fix support for address scope in IPv6 numerical addresses
3341
3342 Closes #3024
3343
3344- [Loganaden Velvindron brought this change]
3345
3346 GnutTLS: TLS 1.3 support
3347
3348 Closes #2971
3349
3350- TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
3351
3352 Removed DoH.
3353
3354 Closes #2734
3355
3356Jay Satiro (20 Sep 2018)
3357- vtls: fix ssl version "or later" behavior change for many backends
3358
3359 - Treat CURL_SSLVERSION_MAX_NONE the same as
3360 CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
3361 the minimum version also as the maximum.
3362
3363 This is a follow-up to 6015cef which changed the behavior of setting
3364 the SSL version so that the requested version would only be the minimum
3365 and not the maximum. It appears it was (mostly) implemented in OpenSSL
3366 but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
3367 mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
3368
3369 - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
3370
3371 Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
3372 erroneously treated as always TLS 1.3, and would cause an error if
3373 OpenSSL was built without TLS 1.3 support.
3374
3375 Co-authored-by: Daniel Gustafsson
3376
3377 Fixes https://github.com/curl/curl/issues/2969
3378 Closes https://github.com/curl/curl/pull/3012
3379
3380Daniel Stenberg (20 Sep 2018)
3381- certs: generate tests certs with sha256 digest algorithm
3382
3383 As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
3384
3385 "SSL certificate problem: CA signature digest algorithm too weak"
3386
3387 Closes #3014
3388
3389- urlapi: document the error codes, remove two unused ones
3390
3391 Assisted-by: Daniel Gustafsson
3392 Closes #3019
3393
3394- urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
3395
3396 In order for this API to fully work for libcurl itself, it now offers a
3397 CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
3398 name prefix just like libcurl always did. If there's no known prefix, it
3399 will guess "http://".
3400
3401 Separately, it relaxes the check of the host name so that IDN host names
3402 can be passed in as well.
3403
3404 Both these changes are necessary for libcurl itself to use this API.
3405
3406 Assisted-by: Daniel Gustafsson
3407 Closes #3018
3408
3409Kamil Dudka (19 Sep 2018)
3410- nss: try to connect even if libnssckbi.so fails to load
3411
3412 One can still use CA certificates stored in NSS database.
3413
3414 Reported-by: Maxime Legros
3415 Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
3416
3417 Closes #3016
3418
3419Daniel Gustafsson (19 Sep 2018)
3420- urlapi: don't set value which is never read
3421
3422 In the CURLUPART_URL case, there is no codepath which invokes url
3423 decoding so remove the assignment of the urldecode variable. This
3424 fixes the deadstore bug-report from clang static analysis.
3425
3426 Closes #3015
3427 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3428
3429- todo: Update reference to already done item
3430
3431 TODO item 1.1 was implemented in commit 946ce5b61f, update reference
3432 to it with instead referencing the implemented option.
3433
3434 Closes #3013
3435 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3436
3437Daniel Stenberg (18 Sep 2018)
3438- RELEASE-NOTES: synced
3439
3440- [slodki brought this change]
3441
3442 cmake: don't require OpenSSL if USE_OPENSSL=OFF
3443
3444 User must have OpenSSL installed even if not used by libcurl at all
3445 since 7.61.1 release. Broken at
3446 7867aaa9a01decf93711428462335be8cef70212
3447
3448 Reviewed-by: Sergei Nikulov
3449 Closes #3001
3450
3451- curl_multi_wait: call getsock before figuring out timeout
3452
3453 .... since getsock may update the expiry timer.
3454
3455 Fixes #2996
3456 Closes #3000
3457
3458- examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
3459
3460 Closes #3004
3461
3462Daniel Gustafsson (18 Sep 2018)
3463- darwinssl: Fix realloc memleak
3464
3465 The reallocation was using the input pointer for the return value, which
3466 leads to a memory leak on reallication failure. Fix by instead use the
3467 safe internal API call Curl_saferealloc().
3468
3469 Closes #3005
3470 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3471 Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
3472
3473- [Kruzya brought this change]
3474
3475 examples: Fix memory leaks from realloc errors
3476
3477 Make sure to not overwrite the reallocated pointer in realloc() calls
3478 to avoid a memleak on memory errors.
3479
3480- memory: add missing curl_printf header
3481
3482 ftp_send_command() was using vsnprintf() without including the libcurl
3483 *rintf() replacement header. Fix by including curl_printf.h and also
3484 add curl_memory.h while at it since memdebug.h depends on it.
3485
3486 Closes #2999
3487 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3488
3489Daniel Stenberg (16 Sep 2018)
3490- [Si brought this change]
3491
3492 curl: update --tlsv* descriptions in --help output
3493
3494 Closes #2994
3495
3496- http: made Curl_add_buffer functions take a pointer-pointer
3497
3498 ... so that they can clear the original pointer on failure, which makes
3499 the error-paths and their cleanups easier.
3500
3501 Closes #2992
3502
3503- http2: fix memory leaks on error-path
3504
3505- [Rikard Falkeborn brought this change]
3506
3507 libtest: Add chkdecimalpoint to .gitignore
3508
3509 Closes #2998
3510
3511Viktor Szakats (14 Sep 2018)
3512- secure Openwall URLs
3513
3514Daniel Stenberg (14 Sep 2018)
3515- openssl: show "proper" version number for libressl builds
3516
3517 Closes #2989
3518
3519- [Rainer Jung brought this change]
3520
3521 openssl: assume engine support in 0.9.8 or later
3522
3523 Fixes #2983
3524 Closes #2988
3525
3526Daniel Gustafsson (13 Sep 2018)
3527- sendf: use failf() rather than Curl_failf()
3528
3529 The failf() macro is the name used for invoking Curl_failf(). While
3530 there isn't a way to turn off failf like there is for infof, but it's
3531 still a good idea to use the macro.
3532
3533 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3534
3535- sendf: Fix whitespace in infof/failf concatenation
3536
3537 Strings broken on multiple rows in the .c file need to have appropriate
3538 whitespace padding on either side of the concatenation point to render
3539 a correct amalgamated string. Fix by adding a space at the occurrences
3540 found.
3541
3542 Closes #2986
3543 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3544
3545- krb5: fix memory leak in krb_auth
3546
3547 The FTP command allocated by aprintf() must be freed after usage.
3548
3549 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3550
3551- ftp: include command in Curl_ftpsend sendbuffer
3552
3553 Commit 8238ba9c5f10414a88f502bf3f5d5a42d632984c inadvertently removed
3554 the actual command to be sent from the send buffer in a refactoring.
3555 Add back copying the command into the buffer. Also add more guards
3556 against malformed input while at it.
3557
3558 Closes #2985
3559 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3560
3561- ntlm_wb: Fix memory leaks in ntlm_wb_response
3562
3563 When erroring out on a request being too large, the existing buffer was
3564 leaked. Fix by explicitly freeing on the way out.
3565
3566 Closes #2966
3567 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3568
3569Daniel Stenberg (13 Sep 2018)
3570- [Yiming Jing brought this change]
3571
3572 travis: build the MesaLink vtls backend with MesaLink 0.7.1
3573
3574- [Yiming Jing brought this change]
3575
3576 runtests.pl: run tests against the MesaLink vtls backend
3577
3578- [Yiming Jing brought this change]
3579
3580 vtls: add a MesaLink vtls backend
3581
3582 Closes #2984
3583
3584- [Yiming Jing brought this change]
3585
3586 configure.ac: add a MesaLink vtls backend
3587
3588- [Dave Reisner brought this change]
3589
3590 curl_url_set.3: properly escape \n in example code
3591
3592 This yields
3593
3594 "the scheme is %s\n"
3595
3596 instead of
3597
3598 "the scheme is %s0
3599
3600 Closes #2970
3601
3602- [Dave Reisner brought this change]
3603
3604 curl_url_set.3: fix typo in reference to CURLU_APPENDQUERY
3605
3606- urlglob: improve error message
3607
3608 to help user understand what the problem is
3609
3610 Reported-by: Daniel Shahaf
3611
3612 Fixes #2763
3613 Closes #2977
3614
3615- [Yiming Jing brought this change]
3616
3617 tests/certs: rebuild certs with 2048-bit RSA keys
3618
3619 The previous test certificates contained RSA keys of only 1024 bits.
3620 However, RSA claims that 1024-bit RSA keys are likely to become
3621 crackable some time before 2010. The NIST recommends at least 2048-bit
3622 keys for RSA for now.
3623
3624 Better use full 2048 also for testing.
3625
3626 Closes #2973
3627
3628Daniel Gustafsson (12 Sep 2018)
3629- TODO: fix typo in item
3630
3631 Closes #2968
3632 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
3633
3634Marcel Raad (12 Sep 2018)
3635- anyauthput: fix compiler warning on 64-bit Windows
3636
3637 On Windows, the read function from <io.h> is used, which has its byte
3638 count parameter as unsigned int instead of size_t.
3639
3640 Closes https://github.com/curl/curl/pull/2972
3641
3642Viktor Szakats (12 Sep 2018)
3643- lib: fix gcc8 warning on Windows
3644
3645 Closes https://github.com/curl/curl/pull/2979
3646
3647Jay Satiro (12 Sep 2018)
3648- openssl: fix gcc8 warning
3649
3650 - Use memcpy instead of strncpy to copy a string without termination,
3651 since gcc8 warns about using strncpy to copy as many bytes from a
3652 string as its length.
3653
3654 Suggested-by: Viktor Szakats
3655
3656 Closes https://github.com/curl/curl/issues/2980
3657
3658Daniel Stenberg (10 Sep 2018)
3659- libcurl-url.3: overview man page for the URL API
3660
3661 Closes #2967
3662
3663- example/asiohiper: insert warning comment about its status
3664
3665 This example is simply not working correctly but there's nobody around
3666 with the skills and energy to fix it.
3667
3668 Closes #2407
3669
3670Kamil Dudka (10 Sep 2018)
3671- docs/cmdline-opts: update the documentation of --tlsv1.0
3672
3673 ... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
3674
3675 Closes #2955
3676
3677- docs/examples: do not wait when no transfers are running
3678
3679 Closes #2948
3680
3681Daniel Stenberg (10 Sep 2018)
3682- [Daniel Gustafsson brought this change]
3683
3684 cookies: Move failure case label to end of function
3685
3686 Rather than jumping backwards to where failure cleanup happens
3687 to be performed, move the failure case to end of the function
3688 where it is expected per existing coding convention.
3689
3690 Closes #2965
3691
3692- [Daniel Gustafsson brought this change]
3693
3694 misc: fix typos in comments
3695
3696 Closes #2963
3697
3698- [Daniel Gustafsson brought this change]
3699
3700 cookies: fix leak when writing cookies to file
3701
3702 If the formatting fails, we error out on a fatal error and
3703 clean up on the way out. The array was however freed within
3704 the wrong scope and was thus never freed in case the cookies
3705 were written to a file instead of STDOUT.
3706
3707 Closes #2957
3708
3709- [Daniel Gustafsson brought this change]
3710
3711 cookies: Remove redundant expired check
3712
3713 Expired cookies have already been purged at a later expiration time
3714 before this check, so remove the redundant check.
3715
3716 closes #2962
3717
3718- ntlm_wb: bail out if the response gets overly large
3719
3720 Exit the realloc() loop if the response turns out ridiculously large to
3721 avoid worse problems.
3722
3723 Reported-by: Harry Sintonen
3724 Closes #2959
3725
3726- [Daniel Gustafsson brought this change]
3727
3728 url.c: fix comment typo and indentation
3729
3730 Closes #2960
3731
3732- urlapi: avoid derefencing a possible NULL pointer
3733
3734 Coverity CID 1439134
3735
3736- RELEASE-NOTES: synced
3737
3738Marcel Raad (8 Sep 2018)
3739- test324: fix after 3f3b26d6feb0667714902e836af608094235fca2
3740
3741 The expected error code is now 60. 51 is dead.
3742
3743Daniel Stenberg (8 Sep 2018)
3744- curl_url_set.3: correct description
3745
3746- curl_url-docs: fix AVAILABILITY as Added in curl 7.62.0
3747
3748- URL-API
3749
3750 See header file and man pages for API. All documented API details work
3751 and are tested in the 1560 test case.
3752
3753 Closes #2842
3754
3755- curl_easy_upkeep: removed 'conn' from the name
3756
3757 ... including the associated option.
3758
3759 Fixes #2951
3760 Closes #2952
3761
3762- [Max Dymond brought this change]
3763
3764 upkeep: add a connection upkeep API: curl_easy_conn_upkeep()
3765
3766 Add functionality so that protocols can do custom keepalive on their
3767 connections, when an external API function is called.
3768
3769 Add docs for the new options in 7.62.0
3770
3771 Closes #1641
3772
3773- [Philipp Waehnert brought this change]
3774
3775 configure: add option to disable automatic OpenSSL config loading
3776
3777 Sometimes it may be considered a security risk to load an external
3778 OpenSSL configuration automatically inside curl_global_init(). The
3779 configuration option --disable-ssl-auto-load-config disables this
3780 automatism. The Windows build scripts winbuild/Makefile.vs provide a
3781 corresponding option ENABLE_SSL_AUTO_LOAD_CONFIG accepting a boolean
3782 value.
3783
3784 Setting neither of these options corresponds to the previous behavior
3785 loading the external OpenSSL configuration automatically.
3786
3787 Fixes #2724
3788 Closes #2791
3789
3790- doh: minor edits to please Coverity
3791
3792 The gcc typecheck macros and coverity combined made it warn on the 2nd
3793 argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
3794
3795 Coverity CID 1439115 and CID 1439114.
3796
3797- schannel: avoid switch-cases that go to default anyway
3798
3799 SEC_E_APPLICATION_PROTOCOL_MISMATCH isn't defined in some versions of
3800 mingw and would require an ifdef otherwise.
3801
3802 Reported-by: Thomas Glanzmann
3803 Approved-by: Marc Hörsken
3804 Bug: https://curl.haxx.se/mail/lib-2018-09/0020.html
3805 Closes #2950
3806
3807- [Nicklas Avén brought this change]
3808
3809 imap: change from "FETCH" to "UID FETCH"
3810
3811 ... and add "MAILINDEX".
3812
3813 As described in #2789, this is a suggested solution. Changing UID=xx to
3814 actually get mail with UID xx and add "MAILINDEX" to get a mail with a
3815 special index in the mail box (old behavior). So MAILINDEX=1 gives the
3816 first non deleted mail in the mail box.
3817
3818 Fixes #2789
3819 Closes #2815
3820
3821- CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size
3822
3823 This is step 3 of #2888.
3824
3825 Fixes #2888
3826 Closes #2896
3827
3828- travis: add the DOH tests to the torture testing
3829
3830- DOH: add test case 1650 and 2100
3831
3832- curl: --doh-url added
3833
3834- setopt: add CURLOPT_DOH_URL
3835
3836 Closes #2668
3837
3838- [Han Han brought this change]
3839
3840 ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
3841
3842 Long live CURLE_PEER_FAILED_VERIFICATION
3843
3844- [Han Han brought this change]
3845
3846 x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert
3847
3848 CURLE_PEER_FAILED_VERIFICATION makes more sense because Curl_parseX509
3849 does not allocate memory internally as its first argument is a pointer
3850 to the certificate structure. The same error code is also returned by
3851 Curl_verifyhost when its call to Curl_parseX509 fails so the change
3852 makes error handling more consistent.
3853
3854- [Han Han brought this change]
3855
3856 openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer
3857
3858 Failure to extract the issuer name from the server certificate should
3859 return a more specific error code like on other TLS backends.
3860
3861- [Han Han brought this change]
3862
3863 schannel: unified error code handling
3864
3865 Closes #2901
3866
3867- [Han Han brought this change]
3868
3869 darwinssl: more specific and unified error codes
3870
3871 Closes #2901
3872
3873- CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
3874
3875 Disable the CURLOPT_DNS_USE_GLOBAL_CACHE option and mark it for
3876 deprecation and complete removal in six months.
3877
3878 Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
3879 Closes #2942
3880
3881- url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled
3882
3883 Closes #2709
3884
3885- multiplex: enable by default
3886
3887 Starting 7.62.0, multiplexing is enabled by default in multi handles.
3888
3889- [Jim Fuller brought this change]
3890
3891 tests: add unit tests for url.c
3892
3893 Approved-by: Daniel Gustafsson
3894 Closes #2937
3895
3896- test1452: mark as flaky
3897
3898 makes it not run in the CI builds
3899
3900 Closes #2941
3901
3902- pipelining: deprecated
3903
3904 Transparently. The related curl_multi_setopt() options all still returns
3905 OK when pipelining is selected.
3906
3907 To re-enable the support, the single line change in lib/multi.c needs to
3908 be reverted.
3909
3910 See docs/DEPRECATE.md
3911
3912 Closes #2705
3913
3914- RELEASE-NOTES: start working on 7.62.0
3915
Elliott Hughesb1ef70f2018-10-30 11:28:38 -07003916Version 7.61.1 (4 Sep 2018)
3917
3918Daniel Stenberg (4 Sep 2018)
3919- THANKS: 7.61.1 status
3920
3921- RELEASE-NOTES: 7.61.1
3922
3923- Curl_getoff_all_pipelines: ignore unused return values
3924
3925 Since scan-build would warn on the dead "Dead store/Dead increment"
3926
3927Viktor Szakats (4 Sep 2018)
3928- sftp: fix indentation
3929
3930Daniel Stenberg (4 Sep 2018)
3931- [Przemysław Tomaszewski brought this change]
3932
3933 sftp: don't send post-qoute sequence when retrying a connection
3934
3935 Fixes #2939
3936 Closes #2940
3937
3938Kamil Dudka (3 Sep 2018)
3939- url, vtls: make CURLOPT{,_PROXY}_TLS13_CIPHERS work
3940
3941 This is a follow-up to PR #2607 and PR #2926.
3942
3943 Closes #2936
3944
3945Daniel Stenberg (3 Sep 2018)
3946- [Jay Satiro brought this change]
3947
3948 tool_operate: Add http code 408 to transient list for --retry
3949
3950 - Treat 408 request timeout as transient so that curl will retry the
3951 request if --retry was used.
3952
3953 Closes #2925
3954
3955- [Jay Satiro brought this change]
3956
3957 openssl: Fix setting TLS 1.3 cipher suites
3958
3959 The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
3960 missing.
3961
3962 Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
3963 Reported-by: Kamil Dudka
3964
3965 Closes #2926
3966
3967- Curl_ntlm_core_mk_nt_hash: return error on too long password
3968
3969 ... since it would cause an integer overflow if longer than (max size_t
3970 / 2).
3971
3972 This is CVE-2018-14618
3973
3974 Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
3975 Closes #2756
3976 Reported-by: Zhaoyang Wu
3977
3978- [Rikard Falkeborn brought this change]
3979
3980 http2: Use correct format identifier for stream_id
3981
3982 Closes #2928
3983
3984Marcel Raad (2 Sep 2018)
3985- test1148: fix precheck output
3986
3987 "precheck command error" is not very helpful.
3988
3989Daniel Stenberg (1 Sep 2018)
3990- all: s/int/size_t cleanup
3991
3992 Assisted-by: Rikard Falkeborn
3993
3994 Closes #2922
3995
3996- ssh-libssh: use FALLTHROUGH to silence gcc8
3997
3998Jay Satiro (31 Aug 2018)
3999- tool_operate: Fix setting proxy TLS 1.3 ciphers
4000
4001Daniel Stenberg (31 Aug 2018)
4002- [Daniel Gustafsson brought this change]
4003
4004 cookies: support creation-time attribute for cookies
4005
4006 According to RFC6265 section 5.4, cookies with equal path lengths
4007 SHOULD be sorted by creation-time (earlier first). This adds a
4008 creation-time record to the cookie struct in order to make cookie
4009 sorting more deterministic. The creation-time is defined as the
4010 order of the cookies in the jar, the first cookie read fro the
4011 jar being the oldest. The creation-time is thus not serialized
4012 into the jar. Also remove the strcmp() matching in the sorting as
4013 there is no lexicographic ordering in RFC6265. Existing tests are
4014 updated to match.
4015
4016 Closes #2524
4017
4018Marcel Raad (31 Aug 2018)
4019- Don't use Windows path %PWD for SSH tests
4020
4021 All these tests failed on Windows because something like
4022 sftp://%HOSTIP:%SSHPORT%PWD/
4023 expanded to
4024 sftp://127.0.0.1:1234c:/msys64/home/bla/curl
4025 and then curl complained about the port number ending with a letter.
4026
4027 Use the original POSIX path instead of the Windows path created in
4028 checksystem to fix this.
4029
4030 Closes https://github.com/curl/curl/pull/2920
4031
4032Jay Satiro (29 Aug 2018)
4033- CURLOPT_SSL_CTX_FUNCTION.3: clarify connection reuse warning
4034
4035 Reported-by: Daniel Stenberg
4036
4037 Closes https://github.com/curl/curl/issues/2916
4038
4039Daniel Stenberg (28 Aug 2018)
4040- THANKS-filter: dedup Daniel Jeliński
4041
4042- RELEASE-NOTES: synced
4043
4044- CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
4045
4046- CURLOPT_SSL_CTX_FUNCTION.3: might cause unintended connection reuse [ci skip]
4047
4048 Added a warning!
4049
4050 Closes #2915
4051
4052- curl: fix time-of-check, time-of-use race in dir creation
4053
4054 Patch-by: Jay Satiro
4055 Detected by Coverity
4056 Fixes #2739
4057 Closes #2912
4058
4059- cmdline-opts/page-footer: fix edit mistake
4060
4061 There was a missing newline.
4062
4063 follow-up to a7ba60bb7250
4064
4065- docs: clarify NO_PROXY env variable functionality
4066
4067 Reported-by: Kirill Marchuk
4068 Fixes #2773
4069 Closes #2911
4070
4071Marcel Raad (24 Aug 2018)
4072- lib1522: fix curl_easy_setopt argument type
4073
4074 CURLOPT_POSTFIELDSIZE is a long option.
4075
4076- curl_threads: silence bad-function-cast warning
4077
4078 As uintptr_t and HANDLE are always the same size, this warning is
4079 harmless. Just silence it using an intermediate uintptr_t variable.
4080
4081 Closes https://github.com/curl/curl/pull/2908
4082
4083Daniel Stenberg (24 Aug 2018)
4084- README: add appveyor build badge [ci skip]
4085
4086 Closes #2913
4087
4088- [Ihor Karpenko brought this change]
4089
4090 schannel: client certificate store opening fix
4091
4092 1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG )
4093 while opening certificate store would be sufficient in this scenario and
4094 less-demanding in sense of required user credentials ( for example,
4095 IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore
4096 call without any of flags mentioned above ),
4097
4098 2) as 'cert_store_name' is a DWORD, attempt to format its value like a
4099 string ( in "Failed to open cert store" error message ) will throw null
4100 pointer exception
4101
4102 3) adding GetLastError(), in my opinion, will make error message more
4103 useful.
4104
4105 Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
4106
4107 Closes #2909
4108
4109- [Leonardo Taccari brought this change]
4110
4111 gopher: Do not translate `?' to `%09'
4112
4113 Since GOPHER support was added in curl `?' character was automatically
4114 translated to `%09' (`\t').
4115
4116 However, this behaviour does not seems documented in RFC 4266 and for
4117 search selectors it is documented to directly use `%09' in the URL.
4118 Apart that several gopher servers in the current gopherspace have CGI
4119 support where `?' is used as part of the selector and translating it to
4120 `%09' often leads to surprising results.
4121
4122 Closes #2910
4123
4124Marcel Raad (23 Aug 2018)
4125- cookie tests: treat files as text
4126
4127 Fixes test failures because of wrong line endings on Windows.
4128
4129Daniel Stenberg (23 Aug 2018)
4130- libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation
4131
4132 Multi-threaded applictions basically MUST set CURLOPT_NO_SIGNAL to 1L to
4133 avoid the risk of getting a SIGPIPE.
4134
4135 Either way, a multi-threaded application that uses libcurl/openssl needs
4136 to have a signhandler for or ignore SIGPIPE on its own.
4137
4138 Based on discussions in #2800
4139 Closes #2904
4140
4141- RELEASE-NOTES: synced
4142
4143Marcel Raad (22 Aug 2018)
4144- Tests: fixes for Windows
4145
4146 - test 1268 requires unix sockets
4147 - test 2072 must be disabled also for MSYS/MinGW
4148
4149Daniel Stenberg (22 Aug 2018)
4150- http2: abort the send_callback if not setup yet
4151
4152 When Curl_http2_done() gets called before the http2 data is setup all
4153 the way, we cannot send anything and this should just return an error.
4154
4155 Detected by OSS-Fuzz
4156 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
4157
4158- http2: remove four unused nghttp2 callbacks
4159
4160 Closes #2903
4161
4162- x509asn1: use FALLTHROUGH
4163
4164 ... as no other comments are accepted since 014ed7c22f51463
4165
4166Marcel Raad (21 Aug 2018)
4167- test1148: disable if decimal separator is not point
4168
4169 Modifying the locale with environment variables doesn't work for native
4170 Windows applications. Just disable the test in this case if the decimal
4171 separator is something different than a point. Use a precheck with a
4172 small C program to achieve that.
4173
4174 Closes https://github.com/curl/curl/pull/2786
4175
4176- Enable more GCC warnings
4177
4178 This enables the following additional warnings:
4179 -Wold-style-definition
4180 -Warray-bounds=2 instead of the default 1
4181 -Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
4182 respected for older versions
4183 -Wunused-const-variable, which enables level 2 instead of the default 1
4184 -Warray-bounds also in debug mode through -ftree-vrp
4185 -Wnull-dereference also in debug mode through
4186 -fdelete-null-pointer-checks
4187
4188 Closes https://github.com/curl/curl/pull/2747
4189
4190- curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
4191
4192 This enables level 4 instead of the default level 3, which of the
4193 currently used comments only allows /* FALLTHROUGH */ to silence the
4194 warning.
4195
4196 Closes https://github.com/curl/curl/pull/2747
4197
4198- curl-compilers: enable -Wbad-function-cast on GCC
4199
4200 This warning used to be enabled only for clang as it's a bit stricter
4201 on GCC. Silence the remaining occurrences and enable it on GCC too.
4202
4203 Closes https://github.com/curl/curl/pull/2747
4204
4205- configure: conditionally enable pedantic-errors
4206
4207 Enable pedantic-errors for GCC >= 5 with --enable-werror. Before GCC 5,
4208 pedantic-errors was synonymous to -Werror=pedantic [0], which is still
4209 the case for clang [1]. With GCC 5, it became complementary [2].
4210
4211 Also fix a resulting error in acinclude.m4 as main's return type was
4212 missing, which is illegal in C99.
4213
4214 [0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
4215 [1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages
4216 [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
4217
4218 Closes https://github.com/curl/curl/pull/2747
4219
4220- Remove unused definitions
4221
4222 Closes https://github.com/curl/curl/pull/2747
4223
4224Daniel Stenberg (21 Aug 2018)
4225- x509asn1: make several functions static
4226
4227 and remove the private SIZE_T_MAX define and use the generic one.
4228
4229 Closes #2902
4230
4231- INTERNALS: require GnuTLS >= 2.11.3
4232
4233 Since the public pinning support was brought in e644866caf4. GnuTLS
4234 2.11.3 was released in October 2010.
4235
4236 Figured out in #2890
4237
4238- http2: avoid set_stream_user_data() before stream is assigned
4239
4240 ... before the stream is started, we have it set to -1.
4241
4242 Fixes #2894
4243 Closes #2898
4244
4245- SSLCERTS: improve the openssl command line
4246
4247 ... for extracting certs from a live HTTPS server to make a cacerts.pem
4248 from them.
4249
4250- docs/SECURITY-PROCESS: now we name the files after the CVE id
4251
4252- RELEASE-NOTES: synced
4253
4254- upload: change default UPLOAD_BUFSIZE to 64KB
4255
4256 To make uploads significantly faster in some circumstances.
4257
4258 Part 2 of #2888
4259 Closes #2892
4260
4261- upload: allocate upload buffer on-demand
4262
4263 Saves 16KB on the easy handle for operations that don't need that
4264 buffer.
4265
4266 Part 1 of #2888
4267
4268- [Laurent Bonnans brought this change]
4269
4270 vtls: reinstantiate engine on duplicated handles
4271
4272 Handles created with curl_easy_duphandle do not use the SSL engine set
4273 up in the original handle. This fixes the issue by storing the engine
4274 name in the internal url state and setting the engine from its name
4275 inside curl_easy_duphandle.
4276
4277 Reported-by: Anton Gerasimov
4278 Signed-of-by: Laurent Bonnans
4279 Fixes #2829
4280 Closes #2833
4281
4282- http2: make sure to send after RST_STREAM
4283
4284 If this is the last stream on this connection, the RST_STREAM might not
4285 get pushed to the wire otherwise.
4286
4287 Fixes #2882
4288 Closes #2887
4289 Researched-by: Michael Kaufmann
4290
4291- test1268: check the stderr output as "text"
4292
4293 Follow-up to 099f37e9c57
4294
4295 Pointed-out-by: Marcel Raad
4296
4297- urldata: remove unused pipe_broke struct field
4298
4299 This struct field is never set TRUE in any existing code path. This
4300 change removes the field completely.
4301
4302 Closes #2871
4303
4304- curl: warn the user if a given file name looks like an option
4305
4306 ... simply because this is usually a sign of the user having omitted the
4307 file name and the next option is instead "eaten" by the parser as a file
4308 name.
4309
4310 Add test1268 to verify
4311
4312 Closes #2885
4313
4314- http2: check nghttp2_session_set_stream_user_data return code
4315
4316 Might help bug #2688 debugging
4317
4318 Closes #2880
4319
4320- travis: revert back to gcc-7 for coverage builds
4321
4322 ... since the gcc-8 ones seem to fail frequently.
4323
4324 Follow-up from b85207199544ca
4325
4326 Closes #2886
4327
4328- RELEASE-NOTES: synced
4329
4330 ... and now listed in alphabetical order!
4331
4332- [Adrien brought this change]
4333
4334 CMake: CMake config files are defining CURL_STATICLIB for static builds
4335
4336 This change allows to use the CMake config files generated by Curl's
4337 CMake scripts for static builds of the library.
4338 The symbol CURL_STATIC lib must be defined to compile downstream,
4339 thus the config package is the perfect place to do so.
4340
4341 Fixes #2817
4342 Closes #2823
4343 Reported-by: adnn on github
4344 Reviewed-by: Sergei Nikulov
4345
4346- TODO: host name sections in config files
4347
4348Kamil Dudka (14 Aug 2018)
4349- ssh-libssh: fix infinite connect loop on invalid private key
4350
4351 Added test 656 (based on test 604) to verify the fix.
4352
4353 Bug: https://bugzilla.redhat.com/1595135
4354
4355 Closes #2879
4356
4357- ssh-libssh: reduce excessive verbose output about pubkey auth
4358
4359 The verbose message "Authentication using SSH public key file" was
4360 printed each time the ssh_userauth_publickey_auto() was called, which
4361 meant each time a packet was transferred over network because the API
4362 operates in non-blocking mode.
4363
4364 This patch makes sure that the verbose message is printed just once
4365 (when the authentication state is entered by the SSH state machine).
4366
4367Daniel Stenberg (14 Aug 2018)
4368- travis: disable h2 torture tests for "coverage"
4369
4370 Since they started to fail almost 100% since a few days.
4371
4372 Closes #2876
4373
4374Marcel Raad (14 Aug 2018)
4375- travis: update to GCC 8
4376
4377 Closes https://github.com/curl/curl/pull/2869
4378
4379Daniel Stenberg (13 Aug 2018)
4380- http: fix for tiny "HTTP/0.9" response
4381
4382 Deal with tiny "HTTP/0.9" (header-less) responses by checking the
4383 status-line early, even before a full "HTTP/" is received to allow
4384 detecting 0.9 properly.
4385
4386 Test 1266 and 1267 added to verify.
4387
4388 Fixes #2420
4389 Closes #2872
4390
4391Kamil Dudka (13 Aug 2018)
4392- docs: add disallow-username-in-url.d and haproxy-protocol.d on the list
4393
4394 ... to make make the files appear in distribution tarballs
4395
4396 Closes #2856
4397
4398- .travis.yml: verify that man pages can be regenerated
4399
4400 ... when curl is built from distribution tarball
4401
4402 Closes #2856
4403
4404Marcel Raad (11 Aug 2018)
4405- Split non-portable part off test 1133
4406
4407 Split off testing file names with double quotes into new test 1158.
4408 Disable it for MSYS using a precheck as it doesn't support file names
4409 with double quotes (but Cygwin does, for example).
4410
4411 Fixes https://github.com/curl/curl/issues/2796
4412 Closes https://github.com/curl/curl/pull/2854
4413
4414Jay Satiro (11 Aug 2018)
4415- projects: Improve Windows perl detection in batch scripts
4416
4417 - Determine if perl is in the user's PATH by running perl.exe.
4418
4419 Prior to this change detection was done by checking the PATH for perl/
4420 but that did not work in all cases (eg git install includes perl but
4421 not in perl/ path).
4422
4423 Bug: https://github.com/curl/curl/pull/2865
4424 Reported-by: Daniel Jeliński
4425
4426- [Michael Kaufmann brought this change]
4427
4428 docs: Improve the manual pages of some callbacks
4429
4430 - CURLOPT_HEADERFUNCTION: add newlines
4431 - CURLOPT_INTERLEAVEFUNCTION: fix the description of 'userdata'
4432 - CURLOPT_READDATA: mention crashes, same as in CURLOPT_WRITEDATA
4433 - CURLOPT_READFUNCTION: rename 'instream' to 'userdata' and explain
4434 how to set it
4435
4436 Closes https://github.com/curl/curl/pull/2868
4437
4438Marcel Raad (11 Aug 2018)
4439- GCC: silence -Wcast-function-type uniformly
4440
4441 Pointed-out-by: Rikard Falkeborn
4442 Closes https://github.com/curl/curl/pull/2860
4443
4444- Silence GCC 8 cast-function-type warnings
4445
4446 On Windows, casting between unrelated function types is fine and
4447 sometimes even necessary, so just use an intermediate cast to
4448 (void (*) (void)) to silence the warning as described in [0].
4449
4450 [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
4451
4452 Closes https://github.com/curl/curl/pull/2860
4453
4454Daniel Stenberg (11 Aug 2018)
4455- CURLINFO_SIZE_UPLOAD: fix missing counter update
4456
4457 Adds test 1522 for verification.
4458
4459 Reported-by: cjmsoregan
4460 Fixes #2847
4461 Closes #2864
4462
4463- [Daniel Jelinski brought this change]
4464
4465 Documentation: fix CURLOPT_SSH_COMPRESSION copy/paste bug
4466
4467 Closes #2867
4468
4469- RELEASE-NOTES: synced
4470
4471- openssl: fix potential NULL pointer deref in is_pkcs11_uri
4472
4473 Follow-up to 298d2565e
4474 Coverity CID 1438387
4475
4476Marcel Raad (10 Aug 2018)
4477- travis: execute "set -eo pipefail" for coverage build
4478
4479 Follow-up to 2de63ab179eb78630ee039ad94fb2a5423df522d and
4480 0b87c963252d3504552ee0c8cf4402bd65a80af5.
4481
4482 Closes https://github.com/curl/curl/pull/2862
4483
4484Daniel Stenberg (10 Aug 2018)
4485- lib1502: fix memory leak in torture test
4486
4487 Reported-by: Marcel Raad
4488 Fixes #2861
4489 Closes #2863
4490
4491- docs: mention NULL is fine input to several functions
4492
4493 Fixes #2837
4494 Closes #2858
4495 Reported-by: Markus Elfring
4496
4497- [Bas van Schaik brought this change]
4498
4499 README.md: add LGTM.com code quality grade for C/C++
4500
4501 Closes #2857
4502
4503- [Rikard Falkeborn brought this change]
4504
4505 test1531: Add timeout
4506
4507 Previously, the macro TEST_HANG_TIMEOUT was unused, but since there is
4508 looping going on, we might as well add timing instead of removing it.
4509
4510 Closes #2853
4511
4512- [Rikard Falkeborn brought this change]
4513
4514 test1540: Remove unused macro TEST_HANG_TIMEOUT
4515
4516 The macro has never been used, and it there is not really any place
4517 where it would make sense to add timing checks.
4518
4519 Closes #2852
4520
4521- [Rikard Falkeborn brought this change]
4522
4523 asyn-thread: Remove unused macro
4524
4525 The macro seems to never have been used.
4526
4527 Closes #2852
4528
4529- [Rikard Falkeborn brought this change]
4530
4531 http_proxy: Remove unused macro SELECT_TIMEOUT
4532
4533 Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22.
4534
4535 Closes #2852
4536
4537- [Rikard Falkeborn brought this change]
4538
4539 formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT
4540
4541 Its usage was removed in
4542 84ad1fd3047815f9c6e78728bb351b828eac10b1.
4543
4544 Closes #2852
4545
4546- [Rikard Falkeborn brought this change]
4547
4548 telnet: Remove unused macros TELOPTS and TELCMDS
4549
4550 Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51.
4551
4552 Closes #2852
4553
4554- [Daniel Jelinski brought this change]
4555
4556 openssl: fix debug messages
4557
4558 Fixes #2806
4559 Closes #2843
4560
4561- configure: fix for -lpthread detection with OpenSSL and pkg-config
4562
4563 ... by making sure it uses the -I provided by pkg-config!
4564
4565 Reported-by: pszemus on github
4566 Fixes #2848
4567 Closes #2850
4568
4569- RELEASE-NOTES: synced
4570
4571- windows: follow up to the buffer-tuning 1ba1dba7
4572
4573 Somehow I didn't include the amended version of the previous fix. This
4574 is the missing piece.
4575
4576 Pointed-out-by: Viktor Szakats
4577
4578- [Daniel Jelinski brought this change]
4579
4580 windows: implement send buffer tuning
4581
4582 Significantly enhances upload performance on modern Windows versions.
4583
4584 Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
4585 Closes #2762
4586 Fixes #2224
4587
4588- [Anderson Toshiyuki Sasaki brought this change]
4589
4590 ssl: set engine implicitly when a PKCS#11 URI is provided
4591
4592 This allows the use of PKCS#11 URI for certificates and keys without
4593 setting the corresponding type as "ENG" and the engine as "pkcs11"
4594 explicitly. If a PKCS#11 URI is provided for certificate, key,
4595 proxy_certificate or proxy_key, the corresponding type is set as "ENG"
4596 if not provided and the engine is set to "pkcs11" if not provided.
4597
4598 Acked-by: Nikos Mavrogiannopoulos
4599 Closes #2333
4600
4601- [Ruslan Baratov brought this change]
4602
4603 CMake: Respect BUILD_SHARED_LIBS
4604
4605 Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
4606 custom option CURL_STATICLIB.
4607
4608 Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
4609
4610 Reviewed-by: Sergei Nikulov
4611 Closes #2755
4612
4613- [John Butterfield brought this change]
4614
4615 cmake: bumped minimum version to 3.4
4616
4617 Closes #2753
4618
4619- [John Butterfield brought this change]
4620
4621 cmake: link curl to the OpenSSL targets instead of lib absolute paths
4622
4623 Reviewed-by: Jakub Zakrzewski
4624 Reviewed-by: Sergei Nikulov
4625 Closes #2753
4626
4627- travis: build darwinssl on macos 10.12
4628
4629 ... as building on 10.13.x before 10.13.4 leads to link errors.
4630
4631 Assisted-by: Nick Zitzmann
4632 Fixes #2835
4633 Closes #2845
4634
4635- DEPRECATE: remove release date from 7.62.0
4636
4637 Since it will slip and the version is the important part there, not the
4638 date.
4639
4640- lib/Makefile: only do symbol hiding if told to
4641
4642 This restores the ability to build a static lib with
4643 --disable-symbol-hiding to keep non-curl_ symbols.
4644
4645 Researched-by: Dan Fandrich
4646 Reported-by: Ran Mozes
4647 Fixes #2830
4648 Closes #2831
4649
4650Marcel Raad (2 Aug 2018)
4651- hostip: fix unused variable warning
4652
4653 addresses is only used in an infof call, which is a macro expanding to
4654 nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
4655
4656Daniel Stenberg (2 Aug 2018)
4657- test1307: disabled
4658
4659 Turns out that since we're using the native fnmatch function now when
4660 available, and they simply disagree on a huge number of test patterns
4661 that make it hard to test this function like this...
4662
4663 Fixes #2825
4664
4665- smb: don't mark it done in smb_do
4666
4667 Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its
4668 doing function too, which requires smb_do() to not mark itself as
4669 done...
4670
4671 Closes #2822
4672
4673- [Rikard Falkeborn brought this change]
4674
4675 general: fix printf specifiers
4676
4677 Closes #2818
4678
4679- RELEASE-NOTES: synced
4680
4681- mailmap: Daniel Jelinski
4682
4683- [Harry Sintonen brought this change]
4684
4685 HTTP: Don't attempt to needlessly decompress redirect body
4686
4687 This change fixes a regression where redirect body would needlessly be
4688 decompressed even though it was to be ignored anyway. As it happens this
4689 causes secondary issues since there appears to be a bug in apache2 that
4690 it in certain conditions generates a corrupt zlib response. The
4691 regression was created by commit:
4692 dbcced8e32b50c068ac297106f0502ee200a1ebd
4693
4694 Discovered-by: Harry Sintonen
4695 Closes #2798
4696
4697- curl: use Content-Disposition before the "URL end" for -OJ
4698
4699 Regression introduced in 7.61.0
4700
4701 Reported-by: Thomas Klausner
4702 Fixes #2783
4703 Closes #2813
4704
4705- [Daniel Jelinski brought this change]
4706
4707 retry: return error if rewind was necessary but didn't happen
4708
4709 Fixes #2801
4710 Closes #2812
4711
4712- http2: clear the drain counter in Curl_http2_done
4713
4714 Reported-by: Andrei Virtosu
4715 Fixes #2800
4716 Closes #2809
4717
4718- smb: fix memory leak on early failure
4719
4720 ... by making sure connection related data (->share) is stored in the
4721 connection and not in the easy handle.
4722
4723 Detected by OSS-fuzz
4724 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
4725 Fixes #2769
4726 Closes #2810
4727
4728- travis: run a 'make checksrc' too
4729
4730 ... to make sure the examples are all checked.
4731
4732 Closes #2811
4733
4734Jay Satiro (29 Jul 2018)
4735- examples/ephiperfifo: checksrc compliance
4736
4737- [Michael Kaufmann brought this change]
4738
4739 sws: handle EINTR when calling select()
4740
4741 Closes https://github.com/curl/curl/pull/2808
4742
4743Daniel Stenberg (29 Jul 2018)
4744- test1157: follow-up to 35ecffb9
4745
4746 Ignore the user-agent line.
4747 Pointed-out-by: Marcel Raad
4748
4749Michael Kaufmann (29 Jul 2018)
4750- tests/http_pipe.py: Use /usr/bin/env to find python
4751
4752Daniel Stenberg (28 Jul 2018)
4753- TODO: Support Authority Information Access certificate extension (AIA)
4754
4755 Closes #2793
4756
4757- conn_free: updated comment to clarify
4758
4759 Let's call it disassociate instead of disconnect since the latter term
4760 is used so much for (TCP) connections already.
4761
4762- test1157: test -H from empty file
4763
4764 Verifies bugfix #2797
4765
4766- [Tobias Blomberg brought this change]
4767
4768 curl: Fix segfault when -H @headerfile is empty
4769
4770 The curl binary would crash if the -H command line option was given a
4771 filename to read using the @filename syntax but that file was empty.
4772
4773 Closes #2797
4774
4775- mime: check Curl_rand_hex's return code
4776
4777 Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
4778 Reported-by: Jeffrey Walton
4779 Closes #2795
4780
4781- [Josh Bialkowski brought this change]
4782
4783 docs/examples: add hiperfifo example using linux epoll/timerfd
4784
4785 Closes #2804
4786
4787- [Darío Hereñú brought this change]
4788
4789 docs/INSTALL.md: minor formatting fixes
4790
4791 Closes #2794
4792
4793- [Christopher Head brought this change]
4794
4795 docs/CURLOPT_URL: fix indentation
4796
4797 The statement, “The application does not have to keep the string around
4798 after setting this option,” appears to be indented under the RTMP
4799 paragraph. It actually applies to all protocols, not just RTMP.
4800 Eliminate the extra indentation.
4801
4802 Closes #2788
4803
4804- [Christopher Head brought this change]
4805
4806 docs/CURLOPT_WRITEFUNCTION: size is always 1
4807
4808 For compatibility with `fwrite`, the `CURLOPT_WRITEFUNCTION` callback is
4809 passed two `size_t` parameters which, when multiplied, designate the
4810 number of bytes of data passed in. In practice, CURL always sets the
4811 first parameter (`size`) to 1.
4812
4813 This practice is also enshrined in documentation and cannot be changed
4814 in future. The documentation states that the default callback is
4815 `fwrite`, which means `fwrite` must be a suitable function for this
4816 purpose. However, the documentation also states that the callback must
4817 return the number of *bytes* it successfully handled, whereas ISO C
4818 `fwrite` returns the number of items (each of size `size`) which it
4819 wrote. The only way these numbers can be equal is if `size` is 1.
4820
4821 Since `size` is 1 and can never be changed in future anyway, document
4822 that fact explicitly and let users rely on it.
4823
4824 Closes #2787
4825
4826- [Carie Pointer brought this change]
4827
4828 wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random
4829
4830 RNG structure must be freed by call to FreeRng after its use in
4831 Curl_cyassl_random. This call fixes Valgrind failures when running the
4832 test suite with wolfSSL.
4833
4834 Closes #2784
4835
4836- [Even Rouault brought this change]
4837
4838 reuse_conn(): free old_conn->options
4839
4840 This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with
4841 connection reuse.
4842
4843 I found this with oss-fuzz on GDAL and curl master:
4844 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582
4845 I couldn't reproduce with the oss-fuzz original test case, but looking
4846 at curl source code pointed to this well reproducable leak.
4847
4848 Closes #2790
4849
4850Marcel Raad (25 Jul 2018)
4851- [Daniel Jelinski brought this change]
4852
4853 system_win32: fix version checking
4854
4855 In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false
4856 when run on windows 10.0. This patch addresses that error.
4857
4858 Closes https://github.com/curl/curl/pull/2792
4859
4860Daniel Stenberg (24 Jul 2018)
4861- [Johannes Schindelin brought this change]
4862
4863 auth: pick Bearer authentication whenever a token is available
4864
4865 So far, the code tries to pick an authentication method only if
4866 user/password credentials are available, which is not the case for
4867 Bearer authentictation...
4868
4869 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4870 Closes #2754
4871
4872- [Johannes Schindelin brought this change]
4873
4874 auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer token
4875
4876 The Bearer authentication was added to cURL 7.61.0, but there is a
4877 problem: if CURLAUTH_ANY is selected, and the server supports multiple
4878 authentication methods including the Bearer method, we strongly prefer
4879 that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer
4880 authentication fails, we will never even try to attempt any other
4881 method.
4882
4883 This is particularly unfortunate when we already know that we do not
4884 have any Bearer token to work with.
4885
4886 Such a scenario happens e.g. when using Git to push to Visual Studio
4887 Team Services (which supports Basic and Bearer authentication among
4888 other methods) and specifying the Personal Access Token directly in the
4889 URL (this aproach is frequently taken by automated builds).
4890
4891 Let's make sure that we have a Bearer token to work with before we
4892 select the Bearer authentication among the available authentication
4893 methods.
4894
4895 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4896 Closes #2754
4897
4898Marcel Raad (22 Jul 2018)
4899- test320: treat curl320.out file as binary
4900
4901 Otherwise, LF line endings are converted to CRLF on Windows,
4902 but no conversion is done for the reply, so the test case fails.
4903
4904 Closes https://github.com/curl/curl/pull/2776
4905
4906Daniel Stenberg (22 Jul 2018)
4907- vtls: set conn->data when closing TLS
4908
4909 Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
4910 layer for a connection still needs a Curl_easy handle for the session_id
4911 cache etc.
4912
4913 Fixes #2764
4914 Closes #2771
4915
4916Marcel Raad (21 Jul 2018)
4917- tests: fixes for Windows line endlings
4918
4919 Set mode="text" when line endings depend on the system representation.
4920
4921 Closes https://github.com/curl/curl/pull/2772
4922
4923- test214: disable MSYS2's POSIX path conversion for URL
4924
4925 By default, the MSYS2 bash converts all backslashes to forward slashes
4926 in URLs. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
4927
4928 Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
4929
4930Daniel Stenberg (20 Jul 2018)
4931- http2: several cleanups
4932
4933 - separate easy handle from connections better
4934 - added asserts on a number of places
4935 - added sanity check of pipelines for debug builds
4936
4937 Closes #2751
4938
4939- smb_getsock: always wait for write socket too
4940
4941 ... the protocol is doing read/write a lot, so it needs to write often
4942 even when downloading. A more proper fix could check for eactly when it
4943 wants to write and only ask for it then.
4944
4945 Without this fix, an SMB download could easily get stuck when the event-driven
4946 API was used.
4947
4948 Closes #2768
4949
4950Marcel Raad (20 Jul 2018)
4951- test1143: disable MSYS2's POSIX path conversion
4952
4953 By default, the MSYS2 bash interprets http:/%HOSTIP:%HTTPPORT/want/1143
4954 as a POSIX file list and converts it to a Windows file list.
4955 Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
4956
4957 Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
4958 Closes https://github.com/curl/curl/pull/2765
4959
4960Daniel Stenberg (18 Jul 2018)
4961- RELEASE-NOTES: sync
4962
4963 ... and work toward 7.61.1
4964
4965- [Ruslan Baratov brought this change]
4966
4967 CMake: Update scripts to use consistent style
4968
4969 Closes #2727
4970 Reviewed-by: Sergei Nikulov
4971
4972- header output: switch off all styles, not just unbold
4973
4974 ... the "unbold" sequence doesn't work on the mac Terminal.
4975
4976 Reported-by: Zero King
4977 Fixes #2736
4978 Closes #2738
4979
4980Nick Zitzmann (14 Jul 2018)
4981- [Rodger Combs brought this change]
4982
4983 darwinssl: add support for ALPN negotiation
4984
4985Marcel Raad (14 Jul 2018)
4986- test1422: add required file feature
4987
4988 curl configured with --enable-debug --disable-file currently complains
4989 on test1422:
4990 Info: Protocol "file" not supported or disabled in libcurl
4991
4992 Make test1422 dependend on enabled FILE protocol to fix this.
4993
4994 Fixes https://github.com/curl/curl/issues/2741
4995 Closes https://github.com/curl/curl/pull/2742
4996
4997Patrick Monnerat (12 Jul 2018)
4998- content_encoding: accept up to 4 unknown trailer bytes after raw deflate data
4999
5000 Some servers issue raw deflate data that may be followed by an undocumented
5001 trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
5002 before considering the data is in error.
5003
5004 Reported-by: clbr on github
5005 Fixes #2719
5006
5007Daniel Stenberg (12 Jul 2018)
5008- smb: fix memory-leak in URL parse error path
5009
5010 Detected by OSS-Fuzz
5011 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
5012 Closes #2740
5013
5014Marcel Raad (12 Jul 2018)
5015- schannel: enable CALG_TLS1PRF for w32api >= 5.1
5016
5017 The definition of CALG_TLS1PRF has been fixed in the 5.1 branch:
5018 https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/commits/73aedcc0f2e6ba370de0d86ab878ad76a0dda7b5
5019
5020Daniel Stenberg (12 Jul 2018)
5021- docs/SECURITY-PROCESS: mention bounty, drop pre-notify
5022
5023 + The hackerone bounty and its process
5024
5025 - We don't and can't handle pre-notification
5026
5027- multi: always do the COMPLETED procedure/state
5028
5029 It was previously erroneously skipped in some situations.
5030
5031 libtest/libntlmconnect.c wrongly depended on wrong behavior (that it
5032 would get a zero timeout) when no handles are "running" in a multi
5033 handle. That behavior is no longer present with this fix. Now libcurl
5034 will always return a -1 timeout when all handles are completed.
5035
5036 Closes #2733
5037
5038- Curl_getoff_all_pipelines: improved for multiplexed
5039
5040 On multiplexed connections, transfers can be removed from anywhere not
5041 just at the head as for pipelines.
5042
5043- ares: check for NULL in completed-callback
5044
5045- conn: remove the boolean 'inuse' field
5046
5047 ... as the usage needs to be counted.
5048
5049- [Paul Howarth brought this change]
5050
5051 openssl: assume engine support in 1.0.0 or later
5052
5053 Commit 38203f1585da changed engine detection to be version-based,
5054 with a baseline of openssl 1.0.1. This does in fact break builds
5055 with openssl 1.0.0, which has engine support - the configure script
5056 detects that ENGINE_cleanup() is available - but <openssl/engine.h>
5057 doesn't get included to declare it.
5058
5059 According to upstream documentation, engine support was added to
5060 mainstream openssl builds as of version 0.9.7:
5061 https://github.com/openssl/openssl/blob/master/README.ENGINE
5062
5063 This commit drops the version test down to 1.0.0 as version 1.0.0d
5064 is the oldest version I have to test with.
5065
5066 Closes #2732
5067
5068Marcel Raad (11 Jul 2018)
5069- schannel: fix MinGW compile break
5070
5071 Original MinGW's w32api has a sytax error in its definition of
5072 CALG_TLS1PRF [0]. Don't use original MinGW w32api's CALG_TLS1PRF
5073 until this bug [1] is fixed.
5074
5075 [0] https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
5076 [1] https://osdn.net/projects/mingw/ticket/38391
5077
5078 Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
5079 Closes https://github.com/curl/curl/pull/2728
5080
5081Daniel Stenberg (11 Jul 2018)
5082- examples/crawler.c: move #ifdef to column 0
5083
5084 Apparently the C => HTML converter on the web site doesn't quite like it
5085 otherwise.
5086
5087 Reported-by: Jeroen Ooms
5088
Elliott Hughes72d948d2018-08-03 14:37:21 -07005089Version 7.61.0 (11 Jul 2018)
5090
5091Daniel Stenberg (11 Jul 2018)
5092- release: 7.61.0
5093
5094- TODO: Configurable loading of OpenSSL configuration file
5095
5096 Closes #2724
5097
5098- post303.d: clarify that this is an RFC violation
5099
5100 ... and not the other way around, which this previously said.
5101
5102 Reported-by: Vasiliy Faronov
5103 Fixes #2723
5104 Closes #2726
5105
5106- [Ruslan Baratov brought this change]
5107
5108 CMake: remove redundant and old end-of-block syntax
5109
5110 Reviewed-by: Jakub Zakrzewski
5111 Closes #2715
5112
5113Jay Satiro (9 Jul 2018)
5114- lib/curl_setup.h: remove unicode character
5115
5116 Follow-up to 82ce416.
5117
5118 Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
5119
5120Daniel Stenberg (9 Jul 2018)
5121- lib/curl_setup.h: remove unicode bom from 8272ec50f02
5122
5123Marcel Raad (9 Jul 2018)
5124- schannel: fix -Wsign-compare warning
5125
5126 MinGW warns:
5127 /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
5128 conditional expression [-Wsign-compare]
5129
5130 Fix this by casting the ptrdiff_t to size_t as we know it's positive.
5131
5132 Closes https://github.com/curl/curl/pull/2721
5133
5134- schannel: workaround for wrong function signature in w32api
5135
5136 Original MinGW's w32api has CryptHashData's second parameter as BYTE *
5137 instead of const BYTE *.
5138
5139 Closes https://github.com/curl/curl/pull/2721
5140
5141- schannel: make more cipher options conditional
5142
5143 They are not defined in the original MinGW's <wincrypt.h>.
5144
5145 Closes https://github.com/curl/curl/pull/2721
5146
5147- curl_setup: include <winerror.h> before <windows.h>
5148
5149 Otherwise, only part of it gets pulled in through <windows.h> on
5150 original MinGW.
5151
5152 Fixes https://github.com/curl/curl/issues/2361
5153 Closes https://github.com/curl/curl/pull/2721
5154
5155- examples: fix -Wformat warnings
5156
5157 When size_t is not a typedef for unsigned long (as usually the case on
5158 Windows), GCC emits -Wformat warnings when using lu and lx format
5159 specifiers with size_t. Silence them with explicit casts to
5160 unsigned long.
5161
5162 Closes https://github.com/curl/curl/pull/2721
5163
5164Daniel Stenberg (9 Jul 2018)
5165- smtp: use the upload buffer size for scratch buffer malloc
5166
5167 ... not the read buffer size, as that can be set smaller and thus cause
5168 a buffer overflow! CVE-2018-0500
5169
5170 Reported-by: Peter Wu
5171 Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
5172
5173- [Dave Reisner brought this change]
5174
5175 scripts: include _curl as part of CLEANFILES
5176
5177 Closes #2718
5178
5179- [Nick Zitzmann brought this change]
5180
5181 darwinssl: allow High Sierra users to build the code using GCC
5182
5183 ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
5184 enumeration constants.
5185
5186 Fixes #2656
5187 Closes #2703
5188
5189- [Ruslan Baratov brought this change]
5190
5191 CMake: Remove unused 'output_var' from 'collect_true'
5192
5193 Variable 'output_var' is not used and can be removed.
5194 Function 'collect_true' renamed to 'count_true'.
5195
5196- [Ruslan Baratov brought this change]
5197
5198 CMake: Remove unused functions
5199
5200 Closes #2711
5201
5202- KNOWN_BUGS: Stick to same family over SOCKS proxy
5203
5204- libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
5205
5206 ... because otherwise not everything get closed down correctly.
5207
5208 Fixes #2708
5209 Closes #2712
5210
5211- libssh: include line number in state change debug messages
5212
5213 Closes #2713
5214
5215- KNOWN_BUGS: Borland support is dropped, AIX problem is too old
5216
5217- [Jeroen Ooms brought this change]
5218
5219 example/crawler.c: simple crawler based on libxml2
5220
5221 Closes #2706
5222
5223- RELEASE-NOTES: synced
5224
5225- DEPRECATE: include year when specifying date
5226
5227- DEPRECATE: linkified
5228
5229- DEPRECATE: mention the PR that disabled axTLS
5230
5231- docs/DEPRECATE.md: spelling and minor formatting
5232
5233- DEPRECATE: new doc describing planned item removals
5234
5235 Closes #2704
5236
5237- [Gisle Vanem brought this change]
5238
5239 telnet: fix clang warnings
5240
5241 telnet.c(1401,28): warning: cast from function call of type 'int' to
5242 non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
5243
5244 Fixes #2696
5245 Closes #2700
5246
5247- docs: fix missed option name markups
5248
5249- [Gaurav Malhotra brought this change]
5250
5251 openssl: Remove some dead code
5252
5253 Closes #2698
5254
5255- openssl: make the requested TLS version the *minimum* wanted
5256
5257 The code treated the set version as the *exact* version to require in
5258 the TLS handshake, which is not what other TLS backends do and probably
5259 not what most people expect either.
5260
5261 Reported-by: Andreas Olsson
5262 Assisted-by: Gaurav Malhotra
5263 Fixes #2691
5264 Closes #2694
5265
5266- RELEASE-NOTES: synced
5267
5268- openssl: allow TLS 1.3 by default
5269
5270 Reported-by: Andreas Olsson
5271 Fixes #2692
5272 Closes #2693
5273
5274- [Adrian Peniak brought this change]
5275
5276 CURLINFO_TLS_SSL_PTR.3: improve the example
5277
5278 The previous example was a little bit confusing, because SSL* structure
5279 (or other "in use" SSL connection pointer) is not accessible after the
5280 transfer is completed, therefore working with the raw TLS library
5281 specific pointer needs to be done during transfer.
5282
5283 Closes #2690
5284
5285- travis: add a build using the synchronous name resolver
5286
5287 ... since default uses the threaded one and we test the c-ares build
5288 already.
5289
5290 Closes #2689
5291
5292- configure: remove CURL_CHECK_NI_WITHSCOPEID too
5293
5294 Since it isn't used either and requires the getnameinfo check
5295
5296 Follow-up to 0aeca41702d2
5297
5298- getnameinfo: not used
5299
5300 Closes #2687
5301
5302- easy_perform: use *multi_timeout() to get wait times
5303
5304 ... and trim the threaded Curl_resolver_getsock() to return zero
5305 millisecond wait times during the first three milliseconds so that
5306 localhost or names in the OS resolver cache gets detected and used
5307 faster.
5308
5309 Closes #2685
5310
5311Max Dymond (27 Jun 2018)
5312- configure: Add dependent libraries after crypto
5313
5314 The linker is pretty dumb and processes things left to right, keeping a
5315 tally of symbols it hasn't resolved yet. So, we need -ldl to appear
5316 after -lcrypto otherwise the linker won't find the dl functions.
5317
5318 Closes #2684
5319
5320Daniel Stenberg (27 Jun 2018)
5321- GOVERNANCE: linkify, changed some titles
5322
5323- GOVERNANCE: add maintainer details/duties
5324
5325- url: check Curl_conncache_add_conn return code
5326
5327 ... it was previously unchecked in two places and thus errors could
5328 remain undetected and cause trouble.
5329
5330 Closes #2681
5331
5332- include/README: remove "hacking" advice, not the right place
5333
5334- RELEASE-NOTES: synced
5335
5336- CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
5337
5338 Follow-up to b6a16afa0aa5
5339
5340- netrc: use a larger buffer
5341
5342 ... to work with longer passwords etc. Grow it from a 256 to a 4096
5343 bytes buffer.
5344
5345 Reported-by: Dario Nieuwenhuis
5346 Fixes #2676
5347 Closes #2680
5348
5349- [Patrick Schlangen brought this change]
5350
5351 CURLOPT_SSL_VERIFYPEER.3: Add performance note
5352
5353 Closes #2673
5354
5355- [Javier Blazquez brought this change]
5356
5357 multi: fix crash due to dangling entry in connect-pending list
5358
5359 Fixes #2677
5360 Closes #2679
5361
5362- ConnectionExists: make sure conn->data is set when "taking" a connection
5363
5364 Follow-up to 2c15693.
5365
5366 Bug #2674
5367 Closes #2675
5368
5369- [Kevin R. Bulgrien brought this change]
5370
5371 system.h: fix for gcc on 32 bit OpenServer
5372
5373 Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
5374
5375- [Raphael Gozzo brought this change]
5376
5377 cmake: allow multiple SSL backends
5378
5379 This will make possible to select the SSL backend (using
5380 curl_global_sslset()) even when the libcurl is built using CMake
5381
5382 Closes #2665
5383
5384- url: fix dangling conn->data pointer
5385
5386 By masking sure to use the *current* easy handle with extracted
5387 connections from the cache, and make sure to NULLify the ->data pointer
5388 when the connection is put into the cache to make this mistake easier to
5389 detect in the future.
5390
5391 Reported-by: Will Dietz
5392 Fixes #2669
5393 Closes #2672
5394
5395- CURLOPT_INTERFACE.3: interface names not supported on Windows
5396
5397- travis: run more tests for coverage check
5398
5399 ... run a few more tortured based and run all tests event-based.
5400
5401 Closes #2664
5402
5403- multi: fix memory leak when stopped during name resolve
5404
5405 When the application just started the transfer and then stops it while
5406 the name resolve in the background thread hasn't completed, we need to
5407 wait for the resolve to complete and then cleanup data accordingly.
5408
5409 Enabled test 1553 again and added test 1590 to also check when the host
5410 name resolves successfully.
5411
5412 Detected by OSS-fuzz.
5413 Closes #1968
5414
5415Viktor Szakats (15 Jun 2018)
5416- maketgz: delete .bak files, fix indentation
5417
5418 Ref: https://github.com/curl/curl/pull/2660
5419
5420 Closes https://github.com/curl/curl/pull/2662
5421
5422Daniel Stenberg (15 Jun 2018)
5423- runtests.pl: remove debug leftover from bb9a340c73f3
5424
5425- curl-confopts.m4: fix typo from ed224f23d5beb
5426
5427 Fixes my local configure to detect a custom installed c-ares without
5428 pkgconfig.
5429
5430- docs/RELEASE-PROCEDURE.md: renamed to use .md extension
5431
5432 Closes #2663
5433
5434- RELEASE-PROCEDURE: gpg sign the tags
5435
5436- RELEASE-NOTES: synced
5437
5438- CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
5439
5440- [Mamta Upadhyay brought this change]
5441
5442 maketgz: fix sed issues on OSX
5443
5444 maketgz creates release tarballs and removes the -DEV string in curl
5445 version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
5446 is run. maketgz works fine on linux but fails on OSX. Problem is with
5447 the sed commands that use option -i without an extension. Maketgz
5448 expects GNU sed instead of BSD and this simply won't work on OSX. Adding
5449 a backup extension .bak after -i fixes this issue
5450
5451 Running the script as if on OSX gives this error:
5452
5453 sed: -e: No such file or directory
5454
5455 Adding a .bak extension resolves it
5456
5457 Closes #2660
5458
5459- configure: enhance ability to detect/build with static openssl
5460
5461 Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
5462 building with static libs without pkg-config.
5463
5464 Reported-by: Marcel Raad
5465 Fixes #2199
5466 Closes #2659
5467
5468- configure: use pkg-config for c-ares detection
5469
5470 First check if there's c-ares information given as pkg-config info and use
5471 that as first preference.
5472
5473 Reported-by: pszemus on github
5474 Fixes #2203
5475 Closes #2658
5476
5477- GOVERNANCE.md: explains how this project is run
5478
5479 Closes #2657
5480
5481- KNOWN_BUGS: NTLM doen't support password with § character
5482
5483 Closes #2120
5484
5485- KNOWN_BUGS: slow connect to localhost on Windows
5486
5487 Closes #2281
5488
5489- [Matteo Bignotti brought this change]
5490
5491 mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
5492
5493 certdata.txt should be deleted also when the process is interrupted by
5494 "same certificate downloaded, exiting"
5495
5496 The certdata.txt is currently kept on disk even if you give the -u
5497 option
5498
5499 Closes #2655
5500
5501- progress: remove a set of unused defines
5502
5503 Reported-by: Peter Wu
5504 Closes #2654
5505
5506- TODO: "Option to refuse usernames in URLs" done
5507
5508 Implemented by Björn in 946ce5b61f
5509
5510- [Lyman Epp brought this change]
5511
5512 Curl_init_do: handle NULL connection pointer passed in
5513
5514 Closes #2653
5515
5516- runtests: support variables in <strippart>
5517
5518 ... and make use of that to make 1455 work better without using a fixed
5519 local port number.
5520
5521 Fixes #2649
5522 Closes #2650
5523
5524- Curl_debug: remove dead printhost code
5525
5526 The struct field is never set (since 5e0d9aea3) so remove the use of it
5527 and remove the connectdata pointer from the prototype.
5528
5529 Reported-by: Tejas
5530 Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
5531 Closes #2647
5532
5533Viktor Szakats (12 Jun 2018)
5534- schannel: avoid incompatible pointer warning
5535
5536 with clang-6.0:
5537 ```
5538 vtls/schannel_verify.c: In function 'add_certs_to_store':
5539 vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
5540 &cert_context)) {
5541 ^
5542 In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
5543 from /usr/share/mingw-w64/include/schnlsp.h:9,
5544 from vtls/schannel.h:29,
5545 from vtls/schannel_verify.c:40:
5546 /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
5547 WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
5548 ^~~~~~~~~~~~~~~~
5549 ```
5550 Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
5551
5552 Closes https://github.com/curl/curl/pull/2648
5553
5554Daniel Stenberg (12 Jun 2018)
5555- [Robert Prag brought this change]
5556
5557 schannel: support selecting ciphers
5558
5559 Given the contstraints of SChannel, I'm exposing these as the algorithms
5560 themselves instead; while replicating the ciphersuite as specified by
5561 OpenSSL would have been preferable, I found no way in the SChannel API
5562 to do so.
5563
5564 To use this from the commandline, you need to pass the names of contants
5565 defining the desired algorithms. For example, curl --ciphers
5566 "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
5567 https://github.com The specific names come from wincrypt.h
5568
5569 Closes #2630
5570
5571- [Bernhard M. Wiedemann brought this change]
5572
5573 test 46: make test pass after 2025
5574
5575 shifting the expiry date to 2037 for now
5576 to be before the possibly problematic year 2038
5577
5578 similar in spirit to commit e6293cf8764e9eecb
5579
5580 Closes #2646
5581
5582- [Marian Klymov brought this change]
5583
5584 cppcheck: fix warnings
5585
5586 - Get rid of variable that was generating false positive warning
5587 (unitialized)
5588
5589 - Fix issues in tests
5590
5591 - Reduce scope of several variables all over
5592
5593 etc
5594
5595 Closes #2631
5596
5597- openssl: assume engine support in 1.0.1 or later
5598
5599 Previously it was checked for in configure/cmake, but that would then
5600 leave other build systems built without engine support.
5601
5602 While engine support probably existed prior to 1.0.1, I decided to play
5603 safe. If someone experience a problem with this, we can widen the
5604 version check.
5605
5606 Fixes #2641
5607 Closes #2644
5608
5609- RELEASE-NOTES: synced
5610
5611- RELEASE-PROCEDURE: update the release calendar for 2019
5612
5613- [Gisle Vanem brought this change]
5614
5615 boringssl + schannel: undef X509_NAME in lib/schannel.h
5616
5617 Fixes the build problem when both boringssl and schannel are enabled.
5618
5619 Fixes #2634
5620 Closes #2643
5621
5622- [Vladimir Kotal brought this change]
5623
5624 mk-ca-bundle.pl: leave certificate name untouched in decode()
5625
5626 Closes #2640
5627
5628- [Rikard Falkeborn brought this change]
5629
5630 tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
5631
5632 This removes the generated lib1521.c when running make clean.
5633
5634 Closes #2633
5635
5636- [Rikard Falkeborn brought this change]
5637
5638 tests/libtest: Add lib1521 to nodist_SOURCES
5639
5640 Since 467da3af0, lib1521.c is generated instead of checked in. According
5641 to the commit message, the intention was to remove it from the tarball
5642 as well. However, it is still present when running make dist. To remove
5643 it, add it to nodist_lib1521_SOURCES. This also means there is no need
5644 for the manually added dist-rule in the Makefile.
5645
5646 Also update CMakelists.txt to handle the fact that we now may have
5647 nodist_SOURCES.
5648
5649- [Stephan Mühlstrasser brought this change]
5650
5651 system.h: add support for IBM xlc C compiler
5652
5653 Added a section to system.h guarded with __xlc__ for the IBM xml C
5654 compiler. Before this change the section titled 'generic "safe guess" on
5655 old 32 bit style' was used, which resulted in a wrong definition of
5656 CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
5657 was wrong.
5658
5659 Compilation warnings fixed with this change:
5660
5661 CC libcurl_la-ftp.lo
5662 "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5663 "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5664 "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5665 "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5666 "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5667 CC libcurl_la-connect.lo
5668 "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5669 "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5670 "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5671 "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5672 CC libcurl_la-tftp.lo
5673 "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
5674
5675 Closes #2637
5676
5677- cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
5678
5679Viktor Szakats (3 Jun 2018)
5680- spelling fixes
5681
5682 Detected using the `codespell` tool (version 1.13.0).
5683
5684 Also secure and fix an URL.
5685
5686Daniel Stenberg (2 Jun 2018)
5687- axtls: follow-up spell fix of comment
5688
5689- axTLS: not considered fit for use
5690
5691 URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
5692
5693 This is step one. It adds #error statements that require source edits to
5694 make curl build again if asked to use axTLS. At a later stage we might
5695 remove the axTLS specific code completely.
5696
5697 Closes #2628
5698
5699- build: remove the Borland specific makefiles
5700
5701 According to the user survey 2018, not even one out of 670 users use
5702 them. Nobody on the mailing list spoke up for them either.
5703
5704 Closes #2629
5705
5706- curl_addrinfo: use same #ifdef conditions in source as header
5707
5708 ... for curl_dofreeaddrinfo
5709
5710- multi: remove a DEBUGF()
5711
5712 ... it might call infof() with a NULL first argument that isn't harmful
5713 but makes it not do anything. The infof() line is not very useful
5714 anymore, it has served it purpose. Good riddance!
5715
5716 Fixes #2627
5717
5718- [Alibek.Jorajev brought this change]
5719
5720 CURLOPT_RESOLVE: always purge old entry first
5721
5722 If there's an existing entry using the selected name.
5723
5724 Closes #2622
5725
5726- fnmatch: use the system one if available
5727
5728 If configure detects fnmatch to be available, use that instead of our
5729 custom one for FTP wildcard pattern matching. For standard compliance,
5730 to reduce our footprint and to use already well tested and well
5731 exercised code.
5732
5733 A POSIX fnmatch behaves slightly different than the internal function
5734 for a few test patterns currently and the macOS one yet slightly
5735 different. Test case 1307 is adjusted for these differences.
5736
5737 Closes #2626
5738
5739Patrick Monnerat (31 May 2018)
5740- os400: add new option in ILE/RPG binding
5741
5742 Follow-up to commit 946ce5b
5743
5744Daniel Stenberg (31 May 2018)
5745- tests/libtest/.gitignore: follow-up fix to ignore lib5* too
5746
5747- KNOWN_BUGS: CURL_GLOBAL_SSL
5748
5749 Closes #2276
5750
5751- [Bernhard Walle brought this change]
5752
5753 configure: check for declaration of getpwuid_r
5754
5755 On our x86 Android toolchain, getpwuid_r is implemented but the header
5756 is missing:
5757
5758 netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
5759
5760 Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
5761 the prototype to curl_setup.h.
5762
5763 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
5764 Closes #2609
5765
5766- [Rikard Falkeborn brought this change]
5767
5768 tests: update .gitignore for libtests
5769
5770 Closes #2624
5771
5772- [Rikard Falkeborn brought this change]
5773
5774 strictness: correct {infof, failf} format specifiers
5775
5776 Closes #2623
5777
5778- [Björn Stenberg brought this change]
5779
5780 option: disallow username in URL
5781
5782 Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
5783 libcurl reject URLs with a username in them.
5784
5785 Closes #2340
5786
5787- libcurl-security.3: improved layout for two rememdy lists
5788
5789- libcurl-security.3: refer to URL instead of in-source markdown file
5790
5791Viktor Szakats (30 May 2018)
5792- curl.rc: embed manifest for correct Windows version detection
5793
5794 * enable it in `src/Makefile.m32`
5795 * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
5796 _not_ enabled via the existing `EMBED_MANIFEST` option
5797 * enable it for all Windows CMake builds (also disable the built-in
5798 minimal manifest, added by CMake by default.)
5799
5800 For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
5801 the list of RC (Resource Compiler) flags to enable the manifest
5802 included in `src/curl.rc`. This may require to disable whatever
5803 automatic or other means in which way another manifest is added to
5804 `curl.exe`.
5805
5806 Notice that Borland C doesn't support this method due to a
5807 long-pending resource compiler bug. Watcom C may also not handle
5808 it correctly when the `-zm` `wrc` option is used (this option may
5809 be unnecessary though) and regardless of options in certain earlier
5810 revisions of the 2.0 beta version.
5811
5812 Closes https://github.com/curl/curl/pull/1221
5813 Fixes https://github.com/curl/curl/issues/2591
5814
5815Patrick Monnerat (30 May 2018)
5816- os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
5817
5818- os400: implement mime api EBCDIC wrappers
5819
5820 Also sync ILE/RPG binding to define the new functions.
5821
5822Daniel Stenberg (29 May 2018)
5823- setopt: add TLS 1.3 ciphersuites
5824
5825 Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
5826
5827 curl: added --tls13-ciphers and --proxy-tls13-ciphers
5828
5829 Fixes #2435
5830 Reported-by: zzq1015 on github
5831 Closes #2607
5832
5833- configure: override AR_FLAGS to silence warning
5834
5835 The automake default ar flags are 'cru', but the 'u' flag in there
5836 causes warnings on many modern Linux distros. Removing 'u' may have a
5837 minor performance impact on older distros but should not cause harm.
5838
5839 Explained on the automake mailing list already back in April 2015:
5840
5841 https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
5842
5843 Reported-by: elephoenix on github
5844 Fixes #2617
5845 Closes #2619
5846
5847Sergei Nikulov (29 May 2018)
5848- cmake: fixed comments in compile checks code
5849
5850Daniel Stenberg (29 May 2018)
5851- INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
5852
5853 ... the older description doesn't work
5854
5855 Reported-by: Peter Varga
5856 Fixes #2615
5857 Closes #2616
5858
5859- [Will Dietz brought this change]
5860
5861 KNOWN_BUGS: restore text regarding #2101.
5862
5863 This was added earlier but appears to have been removed accidentally.
5864
5865 AFAICT this is very much still an issue.
5866
5867 -----
5868
5869 I say "accidentally" because the text seems to have harmlessly snuck
5870 into [1] (which makes no mention of it). [1] was later reverted for
5871 unspecified reasons in [2], presumably because the mentioned issue was
5872 fixed or invalid.
5873
5874 [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
5875 [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
5876
5877 Closes #2618
5878
5879- fnmatch: insist on escaped bracket to match
5880
5881 A non-escaped bracket ([) is for a character group - as documented. It
5882 will *not* match an individual bracket anymore. Test case 1307 updated
5883 accordingly to match.
5884
5885 Problem detected by OSS-Fuzz, although this fix is probably not a final
5886 fix for the notorious timeout issues.
5887
5888 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
5889 Closes #2614
5890
5891Patrick Monnerat (28 May 2018)
5892- psl: use latest psl and refresh it periodically
5893
5894 The latest psl is cached in the multi or share handle. It is refreshed
5895 before use after 72 hours.
5896 New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
5897 If the latest psl is not available, the builtin psl is used.
5898
5899 Reported-by: Yaakov Selkowitz
5900 Fixes #2553
5901 Closes #2601
5902
5903Daniel Stenberg (28 May 2018)
5904- [Fabrice Fontaine brought this change]
5905
5906 configure: fix ssh2 linking when built with a static mbedtls
5907
5908 The ssh2 pkg-config file could contain the following lines when build
5909 with a static version of mbedtls:
5910 Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
5911 Libs.private: /xxx/libmbedcrypto.a
5912
5913 This static mbedtls library must be used to correctly detect ssh2
5914 support and this library must be copied in libcurl.pc otherwise
5915 compilation of any application (such as upmpdcli) with libcurl will fail
5916 when trying to found mbedtls functions included in libssh2. So, replace
5917 pkg-config --libs-only-l by pkg-config --libs.
5918
5919 Fixes:
5920 - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
5921
5922 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
5923 Closes #2613
5924
5925- RELEASE-NOTES: synced
5926
5927- [Bernhard Walle brought this change]
5928
5929 cmake: check for getpwuid_r
5930
5931 The autotools-based build system does it, so we do it also in CMake.
5932
5933 Bug: #2609
5934 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
5935
5936- cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
5937
5938- [Frank Gevaerts brought this change]
5939
5940 curl.1: Fix cmdline-opts reference errors.
5941
5942 --data, --form, and --ntlm were declared to be mutually exclusive with
5943 non-existing options. --data and --form referred to --upload (which is
5944 short for --upload-file and therefore did work, so this one was merely
5945 a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
5946
5947 Closes #2612
5948
5949- [Frank Gevaerts brought this change]
5950
5951 docs: fix cmdline-opts metadata headers case consistency.
5952
5953 Almost all headers start with an uppercase letter, but some didn't.
5954
5955- mailmap: Max Savenkov
5956
5957Sergei Nikulov (28 May 2018)
5958- [Max Savenkov brought this change]
5959
5960 Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
5961
5962Daniel Stenberg (27 May 2018)
5963- mailmap: a Richard Alcock fixup
5964
5965- [Richard Alcock brought this change]
5966
5967 schannel: add failf calls for client certificate failures
5968
5969 Closes #2604
5970
5971- [Richard Alcock brought this change]
5972
5973 winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
5974
5975 Change requirement from $(DISTDIR) to $(DIRDIST)
5976
5977 closes #2603
5978
5979- [Richard Alcock brought this change]
5980
5981 winbuild: only delete OUTFILE if it exists
5982
5983 This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
5984 "Could not find CURL_OBJS.inc.inc" message when building into a clean
5985 folder.
5986
5987 closes #2602
5988
5989- [Alejandro R. Sedeño brought this change]
5990
5991 content_encoding: handle zlib versions too old for Z_BLOCK
5992
5993 Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
5994
5995 Fixes #2606
5996 Closes #2608
5997
5998- multi: provide a socket to wait for in Curl_protocol_getsock
5999
6000 ... even when there's no protocol specific handler setup.
6001
6002 Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
6003 Reported-by: Sean Miller
6004 Closes #2600
6005
6006- [Linus Lewandowski brought this change]
6007
6008 httpauth: add support for Bearer tokens
6009
6010 Closes #2102
6011
6012- TODO: CURLINFO_PAUSE_STATE
6013
6014 Closes #2588
6015
6016Sergei Nikulov (24 May 2018)
6017- cmake: set -d postfix for debug builds if not specified
6018 using -DCMAKE_DEBUG_POSTFIX explicitly
6019
6020 fixes #2121, obsoletes #2384
6021
6022Daniel Stenberg (23 May 2018)
6023- configure: add basic test of --with-ssl prefix
6024
6025 When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
6026 $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
6027 error. Helps users detect when giving configure the wrong path.
6028
6029 Reported-by: Oleg Pudeyev
6030 Assisted-by: Per Malmberg
6031 Fixes #2580
6032
6033Patrick Monnerat (22 May 2018)
6034- http resume: skip body if http code 416 (range error) is ignored.
6035
6036 This avoids appending error data to already existing good data.
6037
6038 Test 92 is updated to match this change.
6039 New test 1156 checks all combinations of --range/--resume, --fail,
6040 Content-Range header and http status code 200/416.
6041
6042 Fixes #1163
6043 Reported-By: Ithubg on github
6044 Closes #2578
6045
6046Daniel Stenberg (22 May 2018)
6047- tftp: make sure error is zero terminated before printfing it
6048
6049- configure: add missing m4/ax_compile_check_sizeof.m4
6050
6051 follow-up to mistake in 6876ccf90b4
6052
6053Jay Satiro (22 May 2018)
6054- [Johannes Schindelin brought this change]
6055
6056 schannel: make CAinfo parsing resilient to CR/LF
6057
6058 OpenSSL has supported --cacert for ages, always accepting LF-only line
6059 endings ("Unix line endings") as well as CR/LF line endings ("Windows
6060 line endings").
6061
6062 When we introduced support for --cacert also with Secure Channel (or in
6063 cURL speak: "WinSSL"), we did not take care to support CR/LF line
6064 endings, too, even if we are much more likely to receive input in that
6065 form when using Windows.
6066
6067 Let's fix that.
6068
6069 Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
6070 accepts CR/LF input already, and the trailing LF before the END
6071 CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
6072 we need to care about is the BEGIN CERTIFICATE marker. We do not
6073 actually need to verify here that the line ending is CR/LF. Just
6074 checking for a CR or an LF is really plenty enough.
6075
6076 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6077
6078 Closes https://github.com/curl/curl/pull/2592
6079
6080Daniel Stenberg (22 May 2018)
6081- CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
6082
6083- RELEASE-NOTES: synced
6084
6085- KNOWN_BUGS: mention the -O with %-encoded file names
6086
6087 Closes #2573
6088
6089- checksrc: make sure sizeof() is used *with* parentheses
6090
6091 ... and unify the source code to adhere.
6092
6093 Closes #2563
6094
6095- curl: added --styled-output
6096
6097 It is enabled by default, so --no-styled-output will switch off the
6098 detection/use of bold headers.
6099
6100 Closes #2538
6101
6102- curl: show headers in bold
6103
6104 The feature is only enabled if the output is believed to be a tty.
6105
6106 -J: There's some minor differences and improvements in -J handling, as
6107 now J should work with -i and it actually creates a file first using the
6108 initial name and then *renames* that to the one found in
6109 Content-Disposition (if any).
6110
6111 -i: only shows headers for HTTP transfers now (as documented).
6112 Previously it would also show for pieces of the transfer that were HTTP
6113 (for example when doing FTP over a HTTP proxy).
6114
6115 -i: now shows trailers as well. Previously they were not shown at all.
6116
6117 --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
6118 now done in the header callback.
6119
6120- configure: compile-time SIZEOF checks
6121
6122 ... instead of exeucting code to get the size. Removes the use of
6123 LD_LIBRARY_PATH for this.
6124
6125 Fixes #2586
6126 Closes #2589
6127 Reported-by: Bernhard Walle
6128
6129- configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
6130
6131 ... and export LD_LIBRARY_PATH properly. This is a follow-up from
6132 2d4c215.
6133
6134 Fixes #2586
6135 Reported-by: Bernhard Walle
6136
6137- docs: clarify CURLOPT_HTTPGET somewhat
6138
6139 Reported-by: bsammon on github
6140 Fixes #2590
6141
6142- curl_fnmatch: only allow two asterisks for matching
6143
6144 The previous limit of 5 can still end up in situation that takes a very
6145 long time and consumes a lot of CPU.
6146
6147 If there is still a rare use case for this, a user can provide their own
6148 fnmatch callback for a version that allows a larger set of wildcards.
6149
6150 This commit was triggered by yet another OSS-Fuzz timeout due to this.
6151 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
6152
6153 Closes #2587
6154
6155- checksrc: fix too long line
6156
6157 follow-up to e05ad5d
6158
6159- [Aleks brought this change]
6160
6161 docs: mention HAproxy protocol "version 1"
6162
6163 ...as there's also a version 2.
6164
6165 Closes #2579
6166
6167- examples/progressfunc: make it build on older libcurls
6168
6169 This example was changed in ce2140a8c1 to use the new microsecond based
6170 getinfo option. This change makes it conditionally keep using the older
6171 option so that the example still builds with older libcurl versions.
6172
6173 Closes #2584
6174
6175- stub_gssapi: fix numerous 'unused parameter' warnings
6176
6177 follow-up to d9e92fd9fd1d
6178
6179- [Philip Prindeville brought this change]
6180
6181 getinfo: add microsecond precise timers for various intervals
6182
6183 Provide a set of new timers that return the time intervals using integer
6184 number of microseconds instead of floats.
6185
6186 The new info names are as following:
6187
6188 CURLINFO_APPCONNECT_TIME_T
6189 CURLINFO_CONNECT_TIME_T
6190 CURLINFO_NAMELOOKUP_TIME_T
6191 CURLINFO_PRETRANSFER_TIME_T
6192 CURLINFO_REDIRECT_TIME_T
6193 CURLINFO_STARTTRANSFER_TIME_T
6194 CURLINFO_TOTAL_TIME_T
6195
6196 Closes #2495
6197
6198- openssl: acknowledge --tls-max for default version too
6199
6200 ... previously it only used the max setting if a TLS version was also
6201 explicitly asked for.
6202
6203 Reported-by: byte_bucket
6204 Fixes #2571
6205 Closes #2572
6206
6207- bump: start working on the pending 7.61.0
6208
6209- [Dagobert Michelsen brought this change]
6210
6211 tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
6212
6213 The warning flag leads e.g. Sun Studio compiler to bail out.
6214
6215 Closes #2576
6216
6217- schannel_verify: fix build for non-schannel
6218
6219Jay Satiro (16 May 2018)
6220- rand: fix typo
6221
6222- schannel: disable manual verify if APIs not available
6223
6224 .. because original MinGW and old compilers do not have the Windows API
6225 definitions needed to support manual verification.
6226
6227- [Archangel_SDY brought this change]
6228
6229 schannel: disable client cert option if APIs not available
6230
6231 Original MinGW targets Windows 2000 by default, which lacks some APIs and
6232 definitions for this feature. Disable it if these APIs are not available.
6233
6234 Closes https://github.com/curl/curl/pull/2522
6235
Elliott Hughes1ef06ba2018-05-30 15:43:58 -07006236Version 7.60.0 (15 May 2018)
6237
6238Daniel Stenberg (15 May 2018)
6239- RELEASE-NOTES: 7.60.0 release
6240
6241- THANKS: added people from the curl 7.60.0 release
6242
6243- docs/libcurl/index.html: removed
6244
6245 The HTML files are long gone from the dist, now remove the last HTML
6246 file pointing to those missing files.
6247
6248 d
6249
6250- [steini2000 brought this change]
6251
6252 http2: remove unused variable
6253
6254 Closes #2570
6255
6256- [steini2000 brought this change]
6257
6258 http2: use easy handle of stream for logging
6259
6260- gcc: disable picky gcc-8 function pointer warnings in two places
6261
6262 Reported-by: Rikard Falkeborn
6263 Bug: #2560
6264 Closes #2569
6265
6266- http2: use the correct function pointer typedef
6267
6268 Fixes gcc-8 picky compiler warnings
6269 Reported-by: Rikard Falkeborn
6270 Bug: #2560
6271 Closes #2568
6272
6273- CODE_STYLE: mention return w/o parens, but sizeof with
6274
6275 ... and remove the github markdown syntax so that it renders better on
6276 the web site. Also, don't use back-ticks inlined to allow the CSS to
6277 highlight source code better.
6278
6279- [Rikard Falkeborn brought this change]
6280
6281 examples: Fix format specifiers
6282
6283 Closes #2561
6284
6285- [Rikard Falkeborn brought this change]
6286
6287 tool: Fix format specifiers
6288
6289- [Rikard Falkeborn brought this change]
6290
6291 ntlm: Fix format specifiers
6292
6293- [Rikard Falkeborn brought this change]
6294
6295 tests: Fix format specifiers
6296
6297- [Rikard Falkeborn brought this change]
6298
6299 lib: Fix format specifiers
6300
6301- contributors.sh: use "on github", not at
6302
6303- http2: getsock fix for uploads
6304
6305 When there's an upload in progress, make sure to wait for the socket to
6306 become writable.
6307
6308 Detected-by: steini2000 on github
6309 Bug: #2520
6310 Closes #2567
6311
6312- pingpong: fix response cache memcpy overflow
6313
6314 Response data for a handle with a large buffer might be cached and then
6315 used with the "closure" handle when it has a smaller buffer and then the
6316 larger cache will be copied and overflow the new smaller heap based
6317 buffer.
6318
6319 Reported-by: Dario Weisser
6320 CVE: CVE-2018-1000300
6321 Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
6322
6323- http: restore buffer pointer when bad response-line is parsed
6324
6325 ... leaving the k->str could lead to buffer over-reads later on.
6326
6327 CVE: CVE-2018-1000301
6328 Assisted-by: Max Dymond
6329
6330 Detected by OSS-Fuzz.
6331 Bug: https://curl.haxx.se/docs/adv_2018-b138.html
6332 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
6333
6334Patrick Monnerat (13 May 2018)
6335- cookies: do not take cookie name as a parameter
6336
6337 RFC 6265 section 4.2.1 does not set restrictions on cookie names.
6338 This is a follow-up to commit 7f7fcd0.
6339 Also explicitly check proper syntax of cookie name/value pair.
6340
6341 New test 1155 checks that cookie names are not reserved words.
6342
6343 Reported-By: anshnd at github
6344 Fixes #2564
6345 Closes #2566
6346
6347Daniel Stenberg (12 May 2018)
6348- smb: reject negative file sizes
6349
6350 Assisted-by: Max Dymond
6351
6352 Detected by OSS-Fuzz
6353 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
6354
6355- setup_transfer: deal with both sockets being -1
6356
6357 Detected by Coverity; CID 1435559. Follow-up to f8d608f38d00. It would
6358 index the array with -1 if neither index was a socket.
6359
6360- travis: add build using NSS
6361
6362 Closes #2558
6363
6364- [Sunny Purushe brought this change]
6365
6366 openssl: change FILE ops to BIO ops
6367
6368 To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES
6369 handling is causing problems. This fix changes the OpenSSL backend code
6370 to use BIO functions instead of FILE I/O functions to circumvent those
6371 problems.
6372
6373 Closes #2512
6374
6375- travis: add a build using WolfSSL
6376
6377 Assisted-by: Dan Fandrich
6378
6379 Closes #2528
6380
6381- RELEASE-NOTES: typo
6382
6383- RELEASE-NOTES: synced
6384
6385- [Daniel Gustafsson brought this change]
6386
6387 URLs: fix one more http url
6388
6389 This file wasn't included in commit 4af40b3646d3b09 which updated all
6390 haxx.se http urls to https. The file was committed prior to that update,
6391 but may have been merged after it and hence didn't get updated.
6392
6393 Closes #2550
6394
6395- github/lock: auto-lock closed issues after 90 days of inactivity
6396
6397- vtls: fix missing commas
6398
6399 follow-up to e66cca046cef
6400
6401- vtls: use unified "supports" bitfield member in backends
6402
6403 ... instead of previous separate struct fields, to make it easier to
6404 extend and change individual backends without having to modify them all.
6405
6406 closes #2547
6407
6408- transfer: don't unset writesockfd on setup of multiplexed conns
6409
6410 Curl_setup_transfer() can be called to setup a new individual transfer
6411 over a multiplexed connection so it shouldn't unset writesockfd.
6412
6413 Bug: #2520
6414 Closes #2549
6415
6416- [Frank Gevaerts brought this change]
6417
6418 configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
6419
6420 They are removed from the compiler flags.
6421
6422 This ensures that make dependency tracking will force a rebuild whenever
6423 configure --enable-debug or --enable-curldebug changes.
6424
6425 Closes #2548
6426
6427- http: don't set the "rewind" flag when not uploading anything
6428
6429 It triggers an assert.
6430
6431 Detected by OSS-Fuzz
6432 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
6433 Closes #2546
6434
6435- travis: add an mbedtls build
6436
6437 Closes #2531
6438
6439- configure: only check for CA bundle for file-using SSL backends
6440
6441 When only building with SSL backends that don't use the CA bundle file
6442 (by default), skip the check.
6443
6444 Fixes #2543
6445 Fixes #2180
6446 Closes #2545
6447
6448- ssh-libssh.c: fix left shift compiler warning
6449
6450 ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to
6451 represent, but 'int' only has 32 bits [-Wshift-overflow=]
6452
6453 'len' will never be that big anyway so I converted the run-time check to
6454 a regular assert.
6455
6456- [Stephan Mühlstrasser brought this change]
6457
6458 URL: fix ASCII dependency in strcpy_url and strlen_url
6459
6460 Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the
6461 changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of
6462 the problem that strcpy_url() was modified unilaterally without also
6463 modifying strlen_url(). As a consequence strcpy_url() was again
6464 depending on ASCII encoding.
6465
6466 This change fixes strlen_url() and strcpy_url() in parallel to use a
6467 common host-encoding independent criterion for deciding whether an URL
6468 character must be %-escaped.
6469
6470 Closes #2535
6471
6472- [Denis Ollier brought this change]
6473
6474 docs: remove extraneous commas in man pages
6475
6476 Closes #2544
6477
6478- RELEASE-NOTES: synced
6479
6480- Revert "TODO: remove configure --disable-pthreads"
6481
6482 This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3.
6483
6484 --disable-pthreads can be used to disable pthreads and get the threaded
6485 resolver to use the windows threading when building with mingw.
6486
6487- vtls: don't define MD5_DIGEST_LENGTH for wolfssl
6488
6489 ... as it defines it (too)
6490
6491- TODO: remove configure --disable-pthreads
6492
6493Jay Satiro (2 May 2018)
6494- [David Garske brought this change]
6495
6496 wolfssl: Fix non-blocking connect
6497
6498 Closes https://github.com/curl/curl/pull/2542
6499
6500Daniel Stenberg (30 Apr 2018)
6501- CURLOPT_URL.3: add ENCODING section [ci skip]
6502
6503 Feedback-by: Michael Kilburn
6504
6505- KNOWN_BUGS: Client cert with Issuer DN differs between backends
6506
6507 Closes #1411
6508
6509- KNOWN_BUGS: Passive transfer tries only one IP address
6510
6511 Closes #1508
6512
6513- KNOWN_BUGS: --upload-file . hang if delay in STDIN
6514
6515 Closes #2051
6516
6517- KNOWN_BUGS: Connection information when using TCP Fast Open
6518
6519 Closes #1332
6520
6521- travis: enable libssh2 on both macos and Linux
6522
6523 It seems to not be detected by default anymore (which is a bug I
6524 believe)
6525
6526 Closes #2541
6527
6528- TODO: Support the clienthello extension
6529
6530 Closes #2299
6531
6532- TODO: CLOEXEC
6533
6534 Closes #2252
6535
6536- tests: provide 'manual' as a feature to optionally require
6537
6538 ... and make test 1026 rely on that feature so that --disable-manual
6539 builds don't cause test failures.
6540
6541 Reported-by: Max Dymond and Anders Roxell
6542 Fixes #2533
6543 Closes #2540
6544
6545- CURLINFO_PROTOCOL.3: mention the existing defined names
6546
6547Jay Satiro (27 Apr 2018)
6548- [Daniel Gustafsson brought this change]
6549
6550 cookies: remove unused macro
6551
6552 Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused,
6553 so remove as it's not part of the published API.
6554
6555 Closes https://github.com/curl/curl/pull/2537
6556
6557Daniel Stenberg (27 Apr 2018)
6558- [Daniel Gustafsson brought this change]
6559
6560 checksrc: force indentation of lines after an else
6561
6562 This extends the INDENTATION case to also handle 'else' statements
6563 and require proper indentation on the following line. Also fixes the
6564 offending cases found in the codebase.
6565
6566 Closes #2532
6567
6568- http2: fix null pointer dereference in http2_connisdead
6569
6570 This function can get called on a connection that isn't setup enough to
6571 have the 'recv_underlying' function pointer initialized so it would try
6572 to call the NULL pointer.
6573
6574 Reported-by: Dario Weisser
6575
6576 Follow-up to db1b2c7fe9b093f8 (never shipped in a release)
6577 Closes #2536
6578
6579- http2: get rid of another strstr()
6580
6581 Follow-up to 1514c44655e12e: replace another strstr() call done on a
6582 buffer that might not be zero terminated - with a memchr() call, even if
6583 we know the substring will be found.
6584
6585 Assisted-by: Max Dymond
6586
6587 Detected by OSS-Fuzz
6588 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
6589
6590 Closes #2534
6591
6592- cyassl: adapt to libraries without TLS 1.0 support built-in
6593
6594 WolfSSL doesn't enable it by default anymore
6595
6596- configure: provide --with-wolfssl as an alias for --with-cyassl
6597
6598- RELEASE-NOTES: synced
6599
6600- [Daniel Gustafsson brought this change]
6601
6602 os400.c: fix ASSIGNWITHINCONDITION checksrc warnings
6603
6604 All occurrences of assignment within conditional expression in
6605 os400sys.c rewritten into two steps: first assignment and then the check
6606 on the success of the assignment. Also adjust related incorrect brace
6607 positions to match project indentation style.
6608
6609 This was spurred by seeing "if((inp = input_token))", but while in there
6610 all warnings were fixed.
6611
6612 There should be no functional change from these changes.
6613
6614 Closes #2525
6615
6616- [Daniel Gustafsson brought this change]
6617
6618 cookies: ensure that we have cookies before writing jar
6619
6620 The jar should be written iff there are cookies, so ensure that we still
6621 have cookies after expiration to avoid creating an empty file.
6622
6623 Closes #2529
6624
6625- strcpy_url: only %-encode values >= 0x80
6626
6627 OSS-Fuzz detected
6628
6629 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
6630
6631 Broke in dd7521bcc1b7
6632
6633- mime: avoid NULL pointer dereference risk
6634
6635 Coverity detected, CID 1435120
6636
6637 Closes #2527
6638
6639- [Stephan Mühlstrasser brought this change]
6640
6641 ctype: restore character classification for non-ASCII platforms
6642
6643 With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic
6644 character classification macros and functions were introduced in
6645 curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on
6646 non-ASCII, e.g. EBCDIC platforms. This change restores the previous set
6647 of character classification macros when CURL_DOES_CONVERSIONS is
6648 defined.
6649
6650 Closes #2494
6651
6652- ftplistparser: keep state between invokes
6653
6654 Fixes FTP wildcard parsing when done over a number of read buffers.
6655
6656 Regression from f786d1f14
6657
6658 Reported-by: wncboy on github
6659 Fixes #2445
6660 Closes #2526
6661
6662- examples/http2-upload: expand buffer to avoid silly warning
6663
6664 http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated
6665 writing between 2 and 11 bytes into a region of size between 8 and 17
6666
6667- examples/sftpuploadresume: typecast fseek argument to long
6668
6669 /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long
6670 int' from 'curl_off_t {aka long long int}' may alter its value
6671
6672- Revert "ftplistparser: keep state between invokes"
6673
6674 This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934.
6675
6676 Caused fuzzer problems on travis not seen when this was a PR!
6677
6678- Curl_memchr: zero length input can't match
6679
6680 Avoids undefined behavior.
6681
6682 Reported-by: Geeknik Labs
6683
6684- ftplistparser: keep state between invokes
6685
6686 Fixes FTP wildcard parsing when doing over a number of read buffers.
6687
6688 Regression from f786d1f14
6689
6690 Reported-by: wncboy on github
6691 Fixes #2445
6692 Closes #2519
6693
6694- ftplistparser: renamed some members and variables
6695
6696 ... to make them better spell out what they're for.
6697
6698- RELEASE-NOTES: synced
6699
6700- [Christian Schmitz brought this change]
6701
6702 curl_global_sslset: always provide available backends
6703
6704 Closes #2499
6705
6706- http2: convert an assert to run-time check
6707
6708 Fuzzing has proven we can reach code in on_frame_recv with status_code
6709 not having been set, so let's detect that in run-time (instead of with
6710 assert) and error error accordingly.
6711
6712 (This should no longer happen with the latest nghttp2)
6713
6714 Detected by OSS-Fuzz
6715 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
6716 Closes #2514
6717
6718- curl.1: clarify that options and URLs can be mixed
6719
6720 Fixes #2515
6721 Closes #2517
6722
6723Jay Satiro (23 Apr 2018)
6724- [Archangel_SDY brought this change]
6725
6726 CURLOPT_SSLCERT.3: improve WinSSL-specific usage info
6727
6728 Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
6729
6730 Closes https://github.com/curl/curl/pull/2504
6731
6732- [Archangel_SDY brought this change]
6733
6734 schannel: fix build error on targets <= XP
6735
6736 - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't
6737 support the latter.
6738
6739 Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
6740
6741 Closes https://github.com/curl/curl/pull/2504
6742
6743Daniel Stenberg (23 Apr 2018)
6744- Revert "ftplistparser: keep state between invokes"
6745
6746 This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9.
6747
6748 Unfortunately this fix introduces memory leaks I've not been able to fix
6749 in several days. Reverting this for now to get the leaks fixed.
6750
6751Jay Satiro (21 Apr 2018)
6752- tool_help: clarify --max-time unit of time is seconds
6753
6754 Before:
6755 -m, --max-time <time> Maximum time allowed for the transfer
6756
6757 After:
6758 -m, --max-time <seconds> Maximum time allowed for the transfer
6759
6760Daniel Stenberg (20 Apr 2018)
6761- http2: handle GOAWAY properly
6762
6763 When receiving REFUSED_STREAM, mark the connection for close and retry
6764 streams accordingly on another/fresh connection.
6765
6766 Reported-by: Terry Wu
6767 Fixes #2416
6768 Fixes #1618
6769 Closes #2510
6770
6771- http2: clear the "drain counter" when a stream is closed
6772
6773 This fixes the notorious "httpc->drain_total >= data->state.drain"
6774 assert.
6775
6776 Reported-by: Anders Bakken
6777
6778 Fixes #1680
6779 Closes #2509
6780
6781- http2: avoid strstr() on data not zero terminated
6782
6783 It's not strictly clear if the API contract allows us to call strstr()
6784 on a string that isn't zero terminated even when we know it will find
6785 the substring, and clang's ASAN check dislikes us for it.
6786
6787 Also added a check of the return code in case it fails, even if I can't
6788 think of a situation how that can trigger.
6789
6790 Detected by OSS-Fuzz
6791 Closes #2513
6792 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
6793
6794- [Stephan Mühlstrasser brought this change]
6795
6796 openssl: fix subjectAltName check on non-ASCII platforms
6797
6798 Curl_cert_hostcheck operates with the host character set, therefore the
6799 ASCII subjectAltName string retrieved with OpenSSL must be converted to
6800 the host encoding before comparison.
6801
6802 Closes #2493
6803
6804Jay Satiro (20 Apr 2018)
6805- openssl: Add support for OpenSSL 1.1.1 verbose-mode trace messages
6806
6807 - Support handling verbose-mode trace messages of type
6808 SSL3_RT_INNER_CONTENT_TYPE, SSL3_MT_ENCRYPTED_EXTENSIONS,
6809 SSL3_MT_END_OF_EARLY_DATA, SSL3_MT_KEY_UPDATE, SSL3_MT_NEXT_PROTO,
6810 SSL3_MT_MESSAGE_HASH
6811
6812 Reported-by: iz8mbw@users.noreply.github.com
6813
6814 Fixes https://github.com/curl/curl/issues/2403
6815
6816Daniel Stenberg (19 Apr 2018)
6817- ftplistparser: keep state between invokes
6818
6819 Regression from f786d1f14
6820
6821 Reported-by: wncboy on github
6822 Fixes #2445
6823 Closes #2508
6824
6825- detect_proxy: only show proxy use if it had contents
6826
6827- http2: handle on_begin_headers() called more than once
6828
6829 This triggered an assert if called more than once in debug mode (and a
6830 memory leak if not debug build). With the right sequence of HTTP/2
6831 headers incoming it can happen.
6832
6833 Detected by OSS-Fuzz
6834
6835 Closes #2507
6836 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
6837
6838Jay Satiro (18 Apr 2018)
6839- [Dan McNulty brought this change]
6840
6841 schannel: add support for CURLOPT_CAINFO
6842
6843 - Move verify_certificate functionality in schannel.c into a new
6844 file called schannel_verify.c. Additionally, some structure defintions
6845 from schannel.c have been moved to schannel.h to allow them to be
6846 used in schannel_verify.c.
6847
6848 - Make verify_certificate functionality for Schannel available on
6849 all versions of Windows instead of just Windows CE. verify_certificate
6850 will be invoked on Windows CE or when the user specifies
6851 CURLOPT_CAINFO and CURLOPT_SSL_VERIFYPEER.
6852
6853 - In verify_certificate, create a custom certificate chain engine that
6854 exclusively trusts the certificate store backed by the CURLOPT_CAINFO
6855 file.
6856
6857 - doc updates of --cacert/CAINFO support for schannel
6858
6859 - Use CERT_NAME_SEARCH_ALL_NAMES_FLAG when invoking CertGetNameString
6860 when available. This implements a TODO in schannel.c to improve
6861 handling of multiple SANs in a certificate. In particular, all SANs
6862 will now be searched instead of just the first name.
6863
6864 - Update tool_operate.c to not search for the curl-ca-bundle.crt file
6865 when using Schannel to maintain backward compatibility. Previously,
6866 any curl-ca-bundle.crt file found in that search would have been
6867 ignored by Schannel. But, with CAINFO support, the file found by
6868 that search would have been used as the certificate store and
6869 could cause issues for any users that have curl-ca-bundle.crt in
6870 the search path.
6871
6872 - Update url.c to not set the build time CURL_CA_BUNDLE if the selected
6873 SSL backend is Schannel. We allow setting CA location for schannel
6874 only when explicitly specified by the user via CURLOPT_CAINFO /
6875 --cacert.
6876
6877 - Add new test cases 3000 and 3001. These test cases check that the first
6878 and last SAN, respectively, matches the connection hostname. New test
6879 certificates have been added for these cases. For 3000, the certificate
6880 prefix is Server-localhost-firstSAN and for 3001, the certificate
6881 prefix is Server-localhost-secondSAN.
6882
6883 - Remove TODO 15.2 (Add support for custom server certificate
6884 validation), this commit addresses it.
6885
6886 Closes https://github.com/curl/curl/pull/1325
6887
6888- schannel: fix warning
6889
6890 - Fix warning 'integer from pointer without a cast' on 3rd arg in
6891 CertOpenStore. The arg type HCRYPTPROV may be a pointer or integer
6892 type of the same size.
6893
6894 Follow-up to e35b025.
6895
6896 Caught by Marc's CI builds.
6897
6898- [Jakub Wilk brought this change]
6899
6900 docs: fix typos
6901
6902 Closes https://github.com/curl/curl/pull/2503
6903
6904Daniel Stenberg (17 Apr 2018)
6905- RELEASE-NOTES: synced
6906
6907Jay Satiro (17 Apr 2018)
6908- [Kees Dekker brought this change]
6909
6910 winbuild: Support custom devel paths for each dependency
6911
6912 - Support custom devel paths for c-ares, mbedTLS, nghttp2, libSSH2,
6913 OpenSSL and zlib. Respectively: CARES_PATH, MBEDTLS_PATH,
6914 NGHTTP2_PATH, SSH2_PATH, SSL_PATH and ZLIB_PATH.
6915
6916 - Use lib.exe for making the static library instead of link.exe /lib.
6917 The latter is undocumented and could cause problems as noted in the
6918 comments.
6919
6920 - Remove a dangling URL that no longer worked. (I was not able to find
6921 the IDN download at MSDN/microsoft.com, so it seems to be removed.)
6922
6923 - Remove custom override for release-ssh2-ssl-dll-zlib configuration.
6924 Nobody knows why it was there and as far as we can see is unnecessary.
6925
6926 Closes https://github.com/curl/curl/pull/2474
6927
6928Daniel Stenberg (17 Apr 2018)
6929- [Jess brought this change]
6930
6931 README.md: add backers and sponsors
6932
6933 Closes #2484
6934
6935- [Archangel_SDY brought this change]
6936
6937 schannel: add client certificate authentication
6938
6939 Users can now specify a client certificate in system certificates store
6940 explicitly using expression like `--cert "CurrentUser\MY\<thumbprint>"`
6941
6942 Closes #2376
6943
6944Marcel Raad (16 Apr 2018)
6945- [toughengineer brought this change]
6946
6947 ntlm_sspi: fix authentication using Credential Manager
6948
6949 If you pass empty user/pass asking curl to use Windows Credential
6950 Storage (as stated in the docs) and it has valid credentials for the
6951 domain, e.g.
6952 curl -v -u : --ntlm example.com
6953 currently authentication fails.
6954 This change fixes it by providing proper SPN string to the SSPI API
6955 calls.
6956
6957 Fixes https://github.com/curl/curl/issues/1622
6958 Closes https://github.com/curl/curl/pull/1660
6959
6960Daniel Stenberg (16 Apr 2018)
6961- configure: keep LD_LIBRARY_PATH changes local
6962
6963 ... only set it when we actually have to run tests to reduce its impact
6964 on for example build commands etc.
6965
6966 Fixes #2490
6967 Closes #2492
6968
6969 Reported-by: Dmitry Mikhirev
6970
6971Marcel Raad (16 Apr 2018)
6972- urldata: make service names unconditional
6973
6974 The ifdefs have become quite long. Also, the condition for the
6975 definition of CURLOPT_SERVICE_NAME and for setting it from
6976 CURLOPT_SERVICE_NAME have diverged. We will soon also need the two
6977 options for NTLM, at least when using SSPI, for
6978 https://github.com/curl/curl/pull/1660.
6979 Just make the definitions unconditional to make that easier.
6980
6981 Closes https://github.com/curl/curl/pull/2479
6982
6983Daniel Stenberg (16 Apr 2018)
6984- test1148: tolerate progress updates better
6985
6986 Fixes #2446
6987 Closes #2488
6988
6989- [Christian Schmitz brought this change]
6990
6991 ssh: show libSSH2 error code when closing fails
6992
6993 Closes #2500
6994
6995Jay Satiro (15 Apr 2018)
6996- [Daniel Gustafsson brought this change]
6997
6998 vauth: Fix typo
6999
7000 Address various spellings of "credentials".
7001
7002 Closes https://github.com/curl/curl/pull/2496
7003
7004- [Dagobert Michelsen brought this change]
7005
7006 system.h: Add sparcv8plus to oracle/sunpro 32-bit detection
7007
7008 With specific compiler options selecting the arch like -xarch=sparc on
7009 newer compilers like Oracle Studio 12.4 there is no definition of
7010 __sparcv8 but __sparcv8plus which means the V9 ISA, but limited to the
7011 32ÎíÎñbit subset defined by the V8plus ISA specification, without the
7012 Visual Instruction Set (VIS), and without other implementation-specific
7013 ISA extensions. So it should be the same as __sparcv8.
7014
7015 Closes https://github.com/curl/curl/pull/2491
7016
7017- [Daniel Gustafsson brought this change]
7018
7019 checksrc: Fix typo
7020
7021 Fix typo in "semicolon" spelling and remove stray tab character.
7022
7023 Closes https://github.com/curl/curl/pull/2498
7024
7025- [Daniel Gustafsson brought this change]
7026
7027 all: Refactor malloc+memset to use calloc
7028
7029 When a zeroed out allocation is required, use calloc() rather than
7030 malloc() followed by an explicit memset(). The result will be the
7031 same, but using calloc() everywhere increases consistency in the
7032 codebase and avoids the risk of subtle bugs when code is injected
7033 between malloc and memset by accident.
7034
7035 Closes https://github.com/curl/curl/pull/2497
7036
7037Daniel Stenberg (12 Apr 2018)
7038- duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
7039
7040 Verified in test 1502 now
7041
7042 Fixes #2485
7043 Closes #2486
7044 Reported-by: Ernst Sjöstrand
7045
7046- mailmap: add a monnerat fixup [ci skip]
7047
7048- proxy: show getenv proxy use in verbose output
7049
7050 ... to aid debugging etc as it sometimes isn't immediately obvious why
7051 curl uses or doesn't use a proxy.
7052
7053 Inspired by #2477
7054
7055 Closes #2480
7056
7057- travis: build libpsl and make builds use it
7058
7059 closes #2471
7060
7061- travis: bump to clang 6 and gcc 7
7062
7063 Extra-eye-on-this-by: Marcel Raad
7064
7065 Closes #2478
7066
7067Marcel Raad (10 Apr 2018)
7068- travis: use trusty for coverage build
7069
7070 This works now and precise is in the process of being decommissioned.
7071
7072 Closes https://github.com/curl/curl/pull/2476
7073
7074- lib: silence null-dereference warnings
7075
7076 In debug mode, MingGW-w64's GCC 7.3 issues null-dereference warnings
7077 when dereferencing pointers after DEBUGASSERT-ing that they are not
7078 NULL.
7079 Fix this by removing the DEBUGASSERTs.
7080
7081 Suggested-by: Daniel Stenberg
7082 Ref: https://github.com/curl/curl/pull/2463
7083
7084- [Kees Dekker brought this change]
7085
7086 winbuild: fix URL
7087
7088 Follow up on https://github.com/curl/curl/pull/2472.
7089 Now using en-us instead of nl-nl as language code in the URL.
7090
7091 Closes https://github.com/curl/curl/pull/2475
7092
7093Daniel Stenberg (9 Apr 2018)
7094- [Kees Dekker brought this change]
7095
7096 winbuild: updated the documentation
7097
7098 The setenv command no longer exists and visual studio build prompts got
7099 changed. Used Visual Studio 2015/2017 as reference.
7100
7101 Closes #2472
7102
7103- test1136: fix cookie order after commit c990eadd1277
7104
7105- build: cleanup to fix clang warnings/errors
7106
7107 unit1309 and vtls/gtls: error: arithmetic on a null pointer treated as a
7108 cast from integer to pointer is a GNU extension
7109
7110 Reported-by: Rikard Falkeborn
7111
7112 Fixes #2466
7113 Closes #2468
7114
7115Jay Satiro (7 Apr 2018)
7116- examples/sftpuploadresmue: Fix Windows large file seek
7117
7118 - Use _fseeki64 instead of fseek (long) to seek curl_off_t in Windows.
7119
7120 - Use CURL_FORMAT_CURL_OFF_T specifier instead of %ld to print
7121 curl_off_t.
7122
7123 Caught by Marc's CI builds.
7124
7125Daniel Stenberg (7 Apr 2018)
7126- curl_setup: provide a CURL_SA_FAMILY_T type if none exists
7127
7128 ... and use this type instead of 'sa_family_t' in the code since several
7129 platforms don't have it.
7130
7131 Closes #2463
7132
7133- [Eric Gallager brought this change]
7134
7135 build: add picky compiler warning flags for gcc 6 and 7
7136
7137- configure: detect sa_family_t
7138
7139Jay Satiro (7 Apr 2018)
7140- [Stefan Agner brought this change]
7141
7142 tool_operate: Fix retry on FTP 4xx to ignore other protocols
7143
7144 Only treat response code as FTP response codes in case the
7145 protocol type is FTP.
7146
7147 This fixes an issue where an HTTP download was treated as FTP
7148 in case libcurl returned with 33. This happens when the
7149 download has already finished and the server responses 416:
7150 HTTP/1.1 416 Requested Range Not Satisfiable
7151
7152 This should not be treated as an FTP error.
7153
7154 Fixes #2464
7155 Closes #2465
7156
7157Daniel Stenberg (6 Apr 2018)
7158- hash: calculate sizes with size_t instead of longs
7159
7160 ... since they return size_t anyway!
7161
7162 closes #2462
7163
7164- RELEASE-NOTES: synced
7165
7166- [Jay Satiro brought this change]
7167
7168 build-openssl.bat: Refer to VS2017 as VC14.1 instead of VC15
7169
7170 .. and do the same for build-wolfssl.bat.
7171
7172 Because MS calls it VC14.1.
7173
7174 Closes https://github.com/curl/curl/pull/2189
7175
7176- [Kees Dekker brought this change]
7177
7178 winbuild: make the clean target work without build-type
7179
7180 Due to the check in Makefile.vc and MakefileBuild.vc, no make call can
7181 be invoked unless a build-type was specified. However, a clean target
7182 only existed when a build type was specified. As a result, the clean
7183 target was unreachable. Made clean target unconditional.
7184
7185 Closes #2455
7186
7187- [patelvivekv1993 brought this change]
7188
7189 build-openssl.bat: allow custom paths for VS and perl
7190
7191 Fixes #2430
7192 Closes #2457
7193
7194- [Laurie Clark-Michalek brought this change]
7195
7196 FTP: allow PASV on IPv6 connections when a proxy is being used
7197
7198 In the situation of a client connecting to an FTP server using an IPv6
7199 tunnel proxy, the connection info will indicate that the connection is
7200 IPv6. However, because the server behing the proxy is IPv4, it is
7201 permissable to attempt PSV mode. In the case of the FTP server being
7202 IPv4 only, EPSV will always fail, and with the current logic curl will
7203 be unable to connect to the server, as the IPv6 fwdproxy causes curl to
7204 think that EPSV is impossible.
7205
7206 Closes #2432
7207
7208- [Jon DeVree brought this change]
7209
7210 file: restore old behavior for file:////foo/bar URLs
7211
7212 curl 7.57.0 and up interpret this according to Appendix E.3.2 of RFC
7213 8089 but then returns an error saying this is unimplemented. This is
7214 actually a regression in behavior on both Windows and Unix.
7215
7216 Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
7217 then passed to the relevant OS API. This means that the behavior of this
7218 case is actually OS dependent.
7219
7220 The Unix path resolution rules say that the OS must handle swallowing
7221 the extra "/" and so this path is the same as "/foo/bar"
7222
7223 The Windows path resolution rules say that this is a UNC path and
7224 automatically handles the SMB access for the program. So curl on Windows
7225 was already doing Appendix E.3.2 without any special code in curl.
7226
7227 Regression
7228
7229 Closes #2438
7230
7231- [Gaurav Malhotra brought this change]
7232
7233 Revert "openssl: Don't add verify locations when verifypeer==0"
7234
7235 This reverts commit dc85437736e1fc90e689bb1f6c51c8f1aa9430eb.
7236
7237 libcurl (with the OpenSSL backend) performs server certificate verification
7238 even if verifypeer == 0 and the verification result is available using
7239 CURLINFO_SSL_VERIFYRESULT. The commit that is being reverted caused the
7240 CURLINFO_SSL_VERIFYRESULT to not have useful information for the
7241 verifypeer == 0 use case (it would always have
7242 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY).
7243
7244 Closes #2451
7245
7246- [Wyatt O'Day brought this change]
7247
7248 tls: fix mbedTLS 2.7.0 build + handle sha256 failures
7249
7250 (mbedtls 2.70 compiled with MBEDTLS_DEPRECATED_REMOVED)
7251
7252 Closes #2453
7253
7254- [Lauri Kasanen brought this change]
7255
7256 cookie: case-insensitive hashing for the domains
7257
7258 closes #2458
7259
7260Patrick Monnerat (4 Apr 2018)
7261- cookie: fix and optimize 2nd top level domain name extraction
7262
7263 This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
7264 is processed.
7265
7266 test46 updated to cover this case.
7267
7268 Follow-up to commit c990ead.
7269
7270 Ref: https://github.com/curl/curl/pull/2440
7271
7272Daniel Stenberg (4 Apr 2018)
7273- openssl: provide defines for argument typecasts to build warning-free
7274
7275 ... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
7276
7277- [Bernard Spil brought this change]
7278
7279 openssl: fix build with LibreSSL 2.7
7280
7281 - LibreSSL 2.7 implements (most of) OpenSSL 1.1 API
7282
7283 Fixes #2319
7284 Closes #2447
7285 Closes #2448
7286
7287 Signed-off-by: Bernard Spil <brnrd@FreeBSD.org>
7288
7289- [Lauri Kasanen brought this change]
7290
7291 cookie: store cookies per top-level-domain-specific hash table
7292
7293 This makes libcurl handle thousands of cookies much better and speedier.
7294
7295 Closes #2440
7296
7297- [Lauri Kasanen brought this change]
7298
7299 cookies: when reading from a file, only remove_expired once
7300
7301 This drops the cookie load time for 8k cookies from 178ms to 15ms.
7302
7303 Closes #2441
7304
7305- test1148: set a fixed locale for the test
7306
7307 ...as otherwise it might use a different decimal sign.
7308
7309 Bug: #2436
7310 Reported-by: Oumph on github
7311
7312Jay Satiro (31 Mar 2018)
7313- docs: fix CURLINFO_*_T examples use of CURL_FORMAT_CURL_OFF_T
7314
7315 - Put a percent sign before each CURL_FORMAT_CURL_OFF_T in printf.
7316
7317 For example "%" CURL_FORMAT_CURL_OFF_T becomes %lld or similar.
7318
7319 Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
7320 Reported-by: David L.
7321
7322Sergei Nikulov (27 Mar 2018)
7323- [Michał Janiszewski brought this change]
7324
7325 cmake: Add advapi32 as explicit link library for win32
7326
7327 ARM targets need advapi32 explicitly.
7328
7329 Closes #2363
7330
7331Daniel Stenberg (27 Mar 2018)
7332- TODO: connection cache sharing is now supporte
7333
7334Jay Satiro (26 Mar 2018)
7335- travis: enable apt retry on fail
7336
7337 This is a workaround for an unsolved travis issue that is causing CI
7338 instances to sporadically fail due to 'unable to connect' issues during
7339 apt stage.
7340
7341 Ref: https://github.com/travis-ci/travis-ci/issues/8507
7342 Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
7343
7344Michael Kaufmann (26 Mar 2018)
7345- runtests.pl: fix warning 'use of uninitialized value'
7346
7347 follow-up to a9a7b60
7348
7349 Closes #2428
7350
7351Daniel Stenberg (24 Mar 2018)
7352- gitignore: ignore more generated files
7353
7354- threaded resolver: track resolver time and set suitable timeout values
7355
7356 In order to make curl_multi_timeout() return suitable "sleep" times even
7357 when there's no socket to wait for while the name is being resolved in a
7358 helper thread.
7359
7360 It will increases the timeouts as time passes.
7361
7362 Closes #2419
7363
7364- [Howard Chu brought this change]
7365
7366 openldap: fix for NULL return from ldap_get_attribute_ber()
7367
7368 Closes #2399
7369
7370GitHub (22 Mar 2018)
7371- [Sergei Nikulov brought this change]
7372
7373 travis-ci: enable -Werror for CMake builds (#2418)
7374
7375- [Sergei Nikulov brought this change]
7376
7377 cmake: avoid warn-as-error during config checks (#2411)
7378
7379 - Move the CURL_WERROR option processing after the configuration checks
7380 to avoid failures in case of warnings during the configuration checks.
7381
7382 This is a partial fix for #2358
7383
7384- [Sergei Nikulov brought this change]
7385
7386 timeval: remove compilation warning by casting (#2417)
7387
7388 This is fixes #2358
7389
7390Daniel Stenberg (22 Mar 2018)
7391- http2: read pending frames (including GOAWAY) in connection-check
7392
7393 If a connection has received a GOAWAY frame while not being used, the
7394 function now reads frames off the connection before trying to reuse it
7395 to avoid reusing connections the server has told us not to use.
7396
7397 Reported-by: Alex Baines
7398 Fixes #1967
7399 Closes #2402
7400
7401- [Bas van Schaik brought this change]
7402
7403 CI: add lgtm.yml for tweaking lgtm.com analysis
7404
7405 Closes #2414
7406
7407- CURLINFO_SSL_VERIFYRESULT.3: fix the example, add some text
7408
7409 Reported-by: Michal Trybus
7410
7411 Fixes #2400
7412
7413- TODO: expand ~/ in config files
7414
7415 Closes #2317
7416
7417- cookie.d: mention that "-" as filename means stdin
7418
7419 Reported-by: Dongliang Mu
7420 Fixes #2410
7421
7422- CURLINFO_COOKIELIST.3: made the example not leak memory
7423
7424 Reported-by: Muz Dima
7425
7426- vauth/cleartext: fix integer overflow check
7427
7428 Make the integer overflow check not rely on the undefined behavior that
7429 a size_t wraps around on overflow.
7430
7431 Detected by lgtm.com
7432 Closes #2408
7433
7434- lib/curl_path.h: add #ifdef header guard
7435
7436 Detected by lgtm.com
7437
7438- vauth/ntlm.h: fix the #ifdef header guard
7439
7440 Detected by lgtm.com
7441
7442Jay Satiro (20 Mar 2018)
7443- examples/hiperfifo: checksrc compliance
7444
7445Daniel Stenberg (19 Mar 2018)
7446- [Nikos Tsipinakis brought this change]
7447
7448 parsedate: support UT timezone
7449
7450 RFC822 section 5.2 mentions Universal Time, 'UT', to be synonymous with
7451 GMT.
7452
7453 Closes #2401
7454
7455- RELEASE-NOTES: synced
7456
7457- [Don brought this change]
7458
7459 cmake: add support for brotli
7460
7461 Currently CMake cannot detect Brotli support. This adds detection of the
7462 libraries and associated header files. It also adds this to the
7463 generated config.
7464
7465 Closes #2392
7466
7467- [Chris Araman brought this change]
7468
7469 darwinssl: fix iOS build
7470
7471Patrick Monnerat (18 Mar 2018)
7472- ILE/RPG binding: Add CURLOPT_HAPROXYPROTOCOL/Fix CURLOPT_DNS_SHUFFLE_ADDRESSES
7473
7474Daniel Stenberg (17 Mar 2018)
7475- [Rick Deist brought this change]
7476
7477 resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES
7478
7479 This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
7480 shuffling of IP addresses returned for a hostname when there is more
7481 than one. This is useful when the application knows that a round robin
7482 approach is appropriate and is willing to accept the consequences of
7483 potentially discarding some preference order returned by the system's
7484 implementation.
7485
7486 Closes #1694
7487
7488- add_handle/easy_perform: clear errorbuffer on start if set
7489
7490 To offer applications a more defined behavior, we clear the buffer as
7491 early as possible.
7492
7493 Assisted-by: Jay Satiro
7494
7495 Fixes #2190
7496 Closes #2377
7497
7498- [Lawrence Matthews brought this change]
7499
7500 CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol
7501
7502 Add --haproxy-protocol for the command line tool
7503
7504 Closes #2162
7505
7506- curl_version_info.3: fix ssl_version description
7507
7508 Reported-by: Vincas Razma
7509 Fixes #2364
7510
7511- multi: improved pending transfers handling => improved performance
7512
7513 When a transfer is requested to get done and it is put in the pending
7514 queue when limited by number of connections, total or per-host, libcurl
7515 would previously very aggressively retry *ALL* pending transfers to get
7516 them transferring. That was very time consuming.
7517
7518 By reducing the aggressiveness in how pending are being retried, we
7519 waste MUCH less time on putting transfers back into pending again.
7520
7521 Some test cases got a factor 30(!) speed improvement with this change.
7522
7523 Reported-by: Cyril B
7524 Fixes #2369
7525 Closes #2383
7526
7527- pause: when changing pause state, update socket state
7528
7529 Especially unpausing a transfer might have to move the socket back to the
7530 "currently used sockets" hash to get monitored. Otherwise it would never get
7531 any more data and get stuck. Easily triggered with pausing using the
7532 multi_socket API.
7533
7534 Reported-by: Philip Prindeville
7535 Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
7536 Fixes #2393
7537 Closes #2391
7538
7539- [Philip Prindeville brought this change]
7540
7541 examples/hiperfifo.c: improved
7542
7543 * use member struct event’s instead of pointers to alloc’d struct
7544 events
7545
7546 * simplify the cases for the mcode_or_die() function via macros;
7547
7548 * make multi_timer_cb() actually do what the block comment says it
7549 should;
7550
7551 * accept a “stop” command on the FIFO to shut down the service;
7552
7553 * use cleaner notation for unused variables than the (void) hack;
7554
7555 * allow following redirections (304’s);
7556
7557- rate-limit: use three second window to better handle high speeds
7558
7559 Due to very frequent updates of the rate limit "window", it could
7560 attempt to rate limit within the same milliseconds and that then made
7561 the calculations wrong, leading to it not behaving correctly on very
7562 fast transfers.
7563
7564 This new logic updates the rate limit "window" to be no shorter than the
7565 last three seconds and only updating the timestamps for this when
7566 switching between the states TOOFAST/PERFORM.
7567
7568 Reported-by: 刘佩东
7569 Fixes #2386
7570 Closes #2388
7571
7572- [luz.paz brought this change]
7573
7574 cleanup: misc typos in strings and comments
7575
7576 Found via `codespell`
7577
7578 Closes #2389
7579
7580- RELEASE-NOTES: toward 7.60.0
7581
7582- [Kobi Gurkan brought this change]
7583
7584 http2: fixes typo
7585
7586 Closes #2387
7587
7588- user-agent.d:: mention --proxy-header as well
7589
7590 Bug: https://github.com/curl/curl/issues/2381
7591
7592- transfer: make HTTP without headers count correct body size
7593
7594 This is what "HTTP/0.9" basically looks like.
7595
7596 Reported on IRC
7597
7598 Closes #2382
7599
7600- test1208: marked flaky
7601
7602 It fails somewhere between every 3rd to 10th travis-CI run
7603
7604- SECURITY-PROCESS: mention how we write/add advisories
7605
7606- [dasimx brought this change]
7607
7608 FTP: fix typo in recursive callback detection for seeking
7609
7610 Fixes #2380
7611
Elliott Hughescac39802018-04-27 16:19:43 -07007612Version 7.59.0 (13 Mar 2018)
7613
7614Daniel Stenberg (13 Mar 2018)
7615- release: 7.59.0
7616
7617Kamil Dudka (13 Mar 2018)
7618- tests/.../spnego.py: fix identifier typo
7619
7620 Detected by Coverity Analysis:
7621
7622 Error: IDENTIFIER_TYPO:
7623 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
7624 * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
7625 * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
7626 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
7627 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
7628 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
7629 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
7630
7631 Closes #2379
7632
7633Daniel Stenberg (13 Mar 2018)
7634- CURLOPT_COOKIEFILE.3: "-" as file name means stdin
7635
7636 Reported-by: Aron Bergman
7637 Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
7638
7639 [ci skip]
7640
7641- Revert "hostip: fix compiler warning: 'variable set but not used'"
7642
7643 This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
7644
7645 The assignment really needs to be there or we risk working with an
7646 uninitialized pointer.
7647
7648Michael Kaufmann (12 Mar 2018)
7649- limit-rate: fix compiler warning
7650
7651 follow-up to 72a0f62
7652
7653Viktor Szakats (12 Mar 2018)
7654- checksrc.pl: add -i and -m options
7655
7656 To sync it with changes made for the libssh2 project.
7657 Also cleanup some whitespace.
7658
7659- curl-openssl.m4: fix spelling [ci skip]
7660
7661- FAQ: fix a broken URL [ci skip]
7662
7663Daniel Stenberg (12 Mar 2018)
7664- http2: mark the connection for close on GOAWAY
7665
7666 ... don't consider it an error!
7667
7668 Assisted-by: Jay Satiro
7669 Reported-by: Łukasz Domeradzki
7670 Fixes #2365
7671 Closes #2375
7672
7673- credits: Viktor prefers without accent
7674
7675- openldap: white space changes, fixed up the copyright years
7676
7677- openldap: check ldap_get_attribute_ber() results for NULL before using
7678
7679 CVE-2018-1000121
7680 Reported-by: Dario Weisser
7681 Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
7682
7683- FTP: reject path components with control codes
7684
7685 Refuse to operate when given path components featuring byte values lower
7686 than 32.
7687
7688 Previously, inserting a %00 sequence early in the directory part when
7689 using the 'singlecwd' ftp method could make curl write a zero byte
7690 outside of the allocated buffer.
7691
7692 Test case 340 verifies.
7693
7694 CVE-2018-1000120
7695 Reported-by: Duy Phan Thanh
7696 Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
7697
7698- readwrite: make sure excess reads don't go beyond buffer end
7699
7700 CVE-2018-1000122
7701 Bug: https://curl.haxx.se/docs/adv_2018-b047.html
7702
7703 Detected by OSS-fuzz
7704
7705- BUGS: updated link to security process
7706
7707- limit-rate: kick in even before "limit" data has been received
7708
7709 ... and make sure to avoid integer overflows with really large values.
7710
7711 Reported-by: 刘佩东
7712 Fixes #2371
7713 Closes #2373
7714
7715- docs/SECURITY.md -> docs/SECURITY-PROCESS.md
7716
7717- SECURITY.md: call it the security process
7718
7719Michael Kaufmann (11 Mar 2018)
7720- Curl_range: fix FTP-only and FILE-only builds
7721
7722 follow-up to e04417d
7723
7724- hostip: fix compiler warning: 'variable set but not used'
7725
7726Daniel Stenberg (11 Mar 2018)
7727- HTTP: allow "header;" to replace an internal header with a blank one
7728
7729 Reported-by: Michael Kaufmann
7730 Fixes #2357
7731 Closes #2362
7732
7733- http2: verbose output new MAX_CONCURRENT_STREAMS values
7734
7735 ... as it is interesting for many users.
7736
7737- SECURITY: distros' max embargo time is 14 days now
7738
7739Patrick Monnerat (8 Mar 2018)
7740- curl tool: accept --compressed also if Brotli is enabled and zlib is not.
7741
7742Daniel Stenberg (5 Mar 2018)
7743- THANKS + mailmap: remove duplicates, fixup full names
7744
7745- [sergii.kavunenko brought this change]
7746
7747 WolfSSL: adding TLSv1.3
7748
7749 Closes #2349