blob: bb92d3a45de71b97bddd232ca0123535b15c3c0d [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
Elliott Hughes72d948d2018-08-03 14:37:21 -07009Version 7.61.0 (11 Jul 2018)
10
11Daniel Stenberg (11 Jul 2018)
12- release: 7.61.0
13
14- TODO: Configurable loading of OpenSSL configuration file
15
16 Closes #2724
17
18- post303.d: clarify that this is an RFC violation
19
20 ... and not the other way around, which this previously said.
21
22 Reported-by: Vasiliy Faronov
23 Fixes #2723
24 Closes #2726
25
26- [Ruslan Baratov brought this change]
27
28 CMake: remove redundant and old end-of-block syntax
29
30 Reviewed-by: Jakub Zakrzewski
31 Closes #2715
32
33Jay Satiro (9 Jul 2018)
34- lib/curl_setup.h: remove unicode character
35
36 Follow-up to 82ce416.
37
38 Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
39
40Daniel Stenberg (9 Jul 2018)
41- lib/curl_setup.h: remove unicode bom from 8272ec50f02
42
43Marcel Raad (9 Jul 2018)
44- schannel: fix -Wsign-compare warning
45
46 MinGW warns:
47 /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
48 conditional expression [-Wsign-compare]
49
50 Fix this by casting the ptrdiff_t to size_t as we know it's positive.
51
52 Closes https://github.com/curl/curl/pull/2721
53
54- schannel: workaround for wrong function signature in w32api
55
56 Original MinGW's w32api has CryptHashData's second parameter as BYTE *
57 instead of const BYTE *.
58
59 Closes https://github.com/curl/curl/pull/2721
60
61- schannel: make more cipher options conditional
62
63 They are not defined in the original MinGW's <wincrypt.h>.
64
65 Closes https://github.com/curl/curl/pull/2721
66
67- curl_setup: include <winerror.h> before <windows.h>
68
69 Otherwise, only part of it gets pulled in through <windows.h> on
70 original MinGW.
71
72 Fixes https://github.com/curl/curl/issues/2361
73 Closes https://github.com/curl/curl/pull/2721
74
75- examples: fix -Wformat warnings
76
77 When size_t is not a typedef for unsigned long (as usually the case on
78 Windows), GCC emits -Wformat warnings when using lu and lx format
79 specifiers with size_t. Silence them with explicit casts to
80 unsigned long.
81
82 Closes https://github.com/curl/curl/pull/2721
83
84Daniel Stenberg (9 Jul 2018)
85- smtp: use the upload buffer size for scratch buffer malloc
86
87 ... not the read buffer size, as that can be set smaller and thus cause
88 a buffer overflow! CVE-2018-0500
89
90 Reported-by: Peter Wu
91 Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
92
93- [Dave Reisner brought this change]
94
95 scripts: include _curl as part of CLEANFILES
96
97 Closes #2718
98
99- [Nick Zitzmann brought this change]
100
101 darwinssl: allow High Sierra users to build the code using GCC
102
103 ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
104 enumeration constants.
105
106 Fixes #2656
107 Closes #2703
108
109- [Ruslan Baratov brought this change]
110
111 CMake: Remove unused 'output_var' from 'collect_true'
112
113 Variable 'output_var' is not used and can be removed.
114 Function 'collect_true' renamed to 'count_true'.
115
116- [Ruslan Baratov brought this change]
117
118 CMake: Remove unused functions
119
120 Closes #2711
121
122- KNOWN_BUGS: Stick to same family over SOCKS proxy
123
124- libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
125
126 ... because otherwise not everything get closed down correctly.
127
128 Fixes #2708
129 Closes #2712
130
131- libssh: include line number in state change debug messages
132
133 Closes #2713
134
135- KNOWN_BUGS: Borland support is dropped, AIX problem is too old
136
137- [Jeroen Ooms brought this change]
138
139 example/crawler.c: simple crawler based on libxml2
140
141 Closes #2706
142
143- RELEASE-NOTES: synced
144
145- DEPRECATE: include year when specifying date
146
147- DEPRECATE: linkified
148
149- DEPRECATE: mention the PR that disabled axTLS
150
151- docs/DEPRECATE.md: spelling and minor formatting
152
153- DEPRECATE: new doc describing planned item removals
154
155 Closes #2704
156
157- [Gisle Vanem brought this change]
158
159 telnet: fix clang warnings
160
161 telnet.c(1401,28): warning: cast from function call of type 'int' to
162 non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
163
164 Fixes #2696
165 Closes #2700
166
167- docs: fix missed option name markups
168
169- [Gaurav Malhotra brought this change]
170
171 openssl: Remove some dead code
172
173 Closes #2698
174
175- openssl: make the requested TLS version the *minimum* wanted
176
177 The code treated the set version as the *exact* version to require in
178 the TLS handshake, which is not what other TLS backends do and probably
179 not what most people expect either.
180
181 Reported-by: Andreas Olsson
182 Assisted-by: Gaurav Malhotra
183 Fixes #2691
184 Closes #2694
185
186- RELEASE-NOTES: synced
187
188- openssl: allow TLS 1.3 by default
189
190 Reported-by: Andreas Olsson
191 Fixes #2692
192 Closes #2693
193
194- [Adrian Peniak brought this change]
195
196 CURLINFO_TLS_SSL_PTR.3: improve the example
197
198 The previous example was a little bit confusing, because SSL* structure
199 (or other "in use" SSL connection pointer) is not accessible after the
200 transfer is completed, therefore working with the raw TLS library
201 specific pointer needs to be done during transfer.
202
203 Closes #2690
204
205- travis: add a build using the synchronous name resolver
206
207 ... since default uses the threaded one and we test the c-ares build
208 already.
209
210 Closes #2689
211
212- configure: remove CURL_CHECK_NI_WITHSCOPEID too
213
214 Since it isn't used either and requires the getnameinfo check
215
216 Follow-up to 0aeca41702d2
217
218- getnameinfo: not used
219
220 Closes #2687
221
222- easy_perform: use *multi_timeout() to get wait times
223
224 ... and trim the threaded Curl_resolver_getsock() to return zero
225 millisecond wait times during the first three milliseconds so that
226 localhost or names in the OS resolver cache gets detected and used
227 faster.
228
229 Closes #2685
230
231Max Dymond (27 Jun 2018)
232- configure: Add dependent libraries after crypto
233
234 The linker is pretty dumb and processes things left to right, keeping a
235 tally of symbols it hasn't resolved yet. So, we need -ldl to appear
236 after -lcrypto otherwise the linker won't find the dl functions.
237
238 Closes #2684
239
240Daniel Stenberg (27 Jun 2018)
241- GOVERNANCE: linkify, changed some titles
242
243- GOVERNANCE: add maintainer details/duties
244
245- url: check Curl_conncache_add_conn return code
246
247 ... it was previously unchecked in two places and thus errors could
248 remain undetected and cause trouble.
249
250 Closes #2681
251
252- include/README: remove "hacking" advice, not the right place
253
254- RELEASE-NOTES: synced
255
256- CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
257
258 Follow-up to b6a16afa0aa5
259
260- netrc: use a larger buffer
261
262 ... to work with longer passwords etc. Grow it from a 256 to a 4096
263 bytes buffer.
264
265 Reported-by: Dario Nieuwenhuis
266 Fixes #2676
267 Closes #2680
268
269- [Patrick Schlangen brought this change]
270
271 CURLOPT_SSL_VERIFYPEER.3: Add performance note
272
273 Closes #2673
274
275- [Javier Blazquez brought this change]
276
277 multi: fix crash due to dangling entry in connect-pending list
278
279 Fixes #2677
280 Closes #2679
281
282- ConnectionExists: make sure conn->data is set when "taking" a connection
283
284 Follow-up to 2c15693.
285
286 Bug #2674
287 Closes #2675
288
289- [Kevin R. Bulgrien brought this change]
290
291 system.h: fix for gcc on 32 bit OpenServer
292
293 Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
294
295- [Raphael Gozzo brought this change]
296
297 cmake: allow multiple SSL backends
298
299 This will make possible to select the SSL backend (using
300 curl_global_sslset()) even when the libcurl is built using CMake
301
302 Closes #2665
303
304- url: fix dangling conn->data pointer
305
306 By masking sure to use the *current* easy handle with extracted
307 connections from the cache, and make sure to NULLify the ->data pointer
308 when the connection is put into the cache to make this mistake easier to
309 detect in the future.
310
311 Reported-by: Will Dietz
312 Fixes #2669
313 Closes #2672
314
315- CURLOPT_INTERFACE.3: interface names not supported on Windows
316
317- travis: run more tests for coverage check
318
319 ... run a few more tortured based and run all tests event-based.
320
321 Closes #2664
322
323- multi: fix memory leak when stopped during name resolve
324
325 When the application just started the transfer and then stops it while
326 the name resolve in the background thread hasn't completed, we need to
327 wait for the resolve to complete and then cleanup data accordingly.
328
329 Enabled test 1553 again and added test 1590 to also check when the host
330 name resolves successfully.
331
332 Detected by OSS-fuzz.
333 Closes #1968
334
335Viktor Szakats (15 Jun 2018)
336- maketgz: delete .bak files, fix indentation
337
338 Ref: https://github.com/curl/curl/pull/2660
339
340 Closes https://github.com/curl/curl/pull/2662
341
342Daniel Stenberg (15 Jun 2018)
343- runtests.pl: remove debug leftover from bb9a340c73f3
344
345- curl-confopts.m4: fix typo from ed224f23d5beb
346
347 Fixes my local configure to detect a custom installed c-ares without
348 pkgconfig.
349
350- docs/RELEASE-PROCEDURE.md: renamed to use .md extension
351
352 Closes #2663
353
354- RELEASE-PROCEDURE: gpg sign the tags
355
356- RELEASE-NOTES: synced
357
358- CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
359
360- [Mamta Upadhyay brought this change]
361
362 maketgz: fix sed issues on OSX
363
364 maketgz creates release tarballs and removes the -DEV string in curl
365 version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
366 is run. maketgz works fine on linux but fails on OSX. Problem is with
367 the sed commands that use option -i without an extension. Maketgz
368 expects GNU sed instead of BSD and this simply won't work on OSX. Adding
369 a backup extension .bak after -i fixes this issue
370
371 Running the script as if on OSX gives this error:
372
373 sed: -e: No such file or directory
374
375 Adding a .bak extension resolves it
376
377 Closes #2660
378
379- configure: enhance ability to detect/build with static openssl
380
381 Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
382 building with static libs without pkg-config.
383
384 Reported-by: Marcel Raad
385 Fixes #2199
386 Closes #2659
387
388- configure: use pkg-config for c-ares detection
389
390 First check if there's c-ares information given as pkg-config info and use
391 that as first preference.
392
393 Reported-by: pszemus on github
394 Fixes #2203
395 Closes #2658
396
397- GOVERNANCE.md: explains how this project is run
398
399 Closes #2657
400
401- KNOWN_BUGS: NTLM doen't support password with § character
402
403 Closes #2120
404
405- KNOWN_BUGS: slow connect to localhost on Windows
406
407 Closes #2281
408
409- [Matteo Bignotti brought this change]
410
411 mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
412
413 certdata.txt should be deleted also when the process is interrupted by
414 "same certificate downloaded, exiting"
415
416 The certdata.txt is currently kept on disk even if you give the -u
417 option
418
419 Closes #2655
420
421- progress: remove a set of unused defines
422
423 Reported-by: Peter Wu
424 Closes #2654
425
426- TODO: "Option to refuse usernames in URLs" done
427
428 Implemented by Björn in 946ce5b61f
429
430- [Lyman Epp brought this change]
431
432 Curl_init_do: handle NULL connection pointer passed in
433
434 Closes #2653
435
436- runtests: support variables in <strippart>
437
438 ... and make use of that to make 1455 work better without using a fixed
439 local port number.
440
441 Fixes #2649
442 Closes #2650
443
444- Curl_debug: remove dead printhost code
445
446 The struct field is never set (since 5e0d9aea3) so remove the use of it
447 and remove the connectdata pointer from the prototype.
448
449 Reported-by: Tejas
450 Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
451 Closes #2647
452
453Viktor Szakats (12 Jun 2018)
454- schannel: avoid incompatible pointer warning
455
456 with clang-6.0:
457 ```
458 vtls/schannel_verify.c: In function 'add_certs_to_store':
459 vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
460 &cert_context)) {
461 ^
462 In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
463 from /usr/share/mingw-w64/include/schnlsp.h:9,
464 from vtls/schannel.h:29,
465 from vtls/schannel_verify.c:40:
466 /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
467 WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
468 ^~~~~~~~~~~~~~~~
469 ```
470 Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
471
472 Closes https://github.com/curl/curl/pull/2648
473
474Daniel Stenberg (12 Jun 2018)
475- [Robert Prag brought this change]
476
477 schannel: support selecting ciphers
478
479 Given the contstraints of SChannel, I'm exposing these as the algorithms
480 themselves instead; while replicating the ciphersuite as specified by
481 OpenSSL would have been preferable, I found no way in the SChannel API
482 to do so.
483
484 To use this from the commandline, you need to pass the names of contants
485 defining the desired algorithms. For example, curl --ciphers
486 "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
487 https://github.com The specific names come from wincrypt.h
488
489 Closes #2630
490
491- [Bernhard M. Wiedemann brought this change]
492
493 test 46: make test pass after 2025
494
495 shifting the expiry date to 2037 for now
496 to be before the possibly problematic year 2038
497
498 similar in spirit to commit e6293cf8764e9eecb
499
500 Closes #2646
501
502- [Marian Klymov brought this change]
503
504 cppcheck: fix warnings
505
506 - Get rid of variable that was generating false positive warning
507 (unitialized)
508
509 - Fix issues in tests
510
511 - Reduce scope of several variables all over
512
513 etc
514
515 Closes #2631
516
517- openssl: assume engine support in 1.0.1 or later
518
519 Previously it was checked for in configure/cmake, but that would then
520 leave other build systems built without engine support.
521
522 While engine support probably existed prior to 1.0.1, I decided to play
523 safe. If someone experience a problem with this, we can widen the
524 version check.
525
526 Fixes #2641
527 Closes #2644
528
529- RELEASE-NOTES: synced
530
531- RELEASE-PROCEDURE: update the release calendar for 2019
532
533- [Gisle Vanem brought this change]
534
535 boringssl + schannel: undef X509_NAME in lib/schannel.h
536
537 Fixes the build problem when both boringssl and schannel are enabled.
538
539 Fixes #2634
540 Closes #2643
541
542- [Vladimir Kotal brought this change]
543
544 mk-ca-bundle.pl: leave certificate name untouched in decode()
545
546 Closes #2640
547
548- [Rikard Falkeborn brought this change]
549
550 tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
551
552 This removes the generated lib1521.c when running make clean.
553
554 Closes #2633
555
556- [Rikard Falkeborn brought this change]
557
558 tests/libtest: Add lib1521 to nodist_SOURCES
559
560 Since 467da3af0, lib1521.c is generated instead of checked in. According
561 to the commit message, the intention was to remove it from the tarball
562 as well. However, it is still present when running make dist. To remove
563 it, add it to nodist_lib1521_SOURCES. This also means there is no need
564 for the manually added dist-rule in the Makefile.
565
566 Also update CMakelists.txt to handle the fact that we now may have
567 nodist_SOURCES.
568
569- [Stephan Mühlstrasser brought this change]
570
571 system.h: add support for IBM xlc C compiler
572
573 Added a section to system.h guarded with __xlc__ for the IBM xml C
574 compiler. Before this change the section titled 'generic "safe guess" on
575 old 32 bit style' was used, which resulted in a wrong definition of
576 CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
577 was wrong.
578
579 Compilation warnings fixed with this change:
580
581 CC libcurl_la-ftp.lo
582 "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
583 "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
584 "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
585 "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
586 "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
587 CC libcurl_la-connect.lo
588 "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
589 "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
590 "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
591 "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
592 CC libcurl_la-tftp.lo
593 "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
594
595 Closes #2637
596
597- cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
598
599Viktor Szakats (3 Jun 2018)
600- spelling fixes
601
602 Detected using the `codespell` tool (version 1.13.0).
603
604 Also secure and fix an URL.
605
606Daniel Stenberg (2 Jun 2018)
607- axtls: follow-up spell fix of comment
608
609- axTLS: not considered fit for use
610
611 URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
612
613 This is step one. It adds #error statements that require source edits to
614 make curl build again if asked to use axTLS. At a later stage we might
615 remove the axTLS specific code completely.
616
617 Closes #2628
618
619- build: remove the Borland specific makefiles
620
621 According to the user survey 2018, not even one out of 670 users use
622 them. Nobody on the mailing list spoke up for them either.
623
624 Closes #2629
625
626- curl_addrinfo: use same #ifdef conditions in source as header
627
628 ... for curl_dofreeaddrinfo
629
630- multi: remove a DEBUGF()
631
632 ... it might call infof() with a NULL first argument that isn't harmful
633 but makes it not do anything. The infof() line is not very useful
634 anymore, it has served it purpose. Good riddance!
635
636 Fixes #2627
637
638- [Alibek.Jorajev brought this change]
639
640 CURLOPT_RESOLVE: always purge old entry first
641
642 If there's an existing entry using the selected name.
643
644 Closes #2622
645
646- fnmatch: use the system one if available
647
648 If configure detects fnmatch to be available, use that instead of our
649 custom one for FTP wildcard pattern matching. For standard compliance,
650 to reduce our footprint and to use already well tested and well
651 exercised code.
652
653 A POSIX fnmatch behaves slightly different than the internal function
654 for a few test patterns currently and the macOS one yet slightly
655 different. Test case 1307 is adjusted for these differences.
656
657 Closes #2626
658
659Patrick Monnerat (31 May 2018)
660- os400: add new option in ILE/RPG binding
661
662 Follow-up to commit 946ce5b
663
664Daniel Stenberg (31 May 2018)
665- tests/libtest/.gitignore: follow-up fix to ignore lib5* too
666
667- KNOWN_BUGS: CURL_GLOBAL_SSL
668
669 Closes #2276
670
671- [Bernhard Walle brought this change]
672
673 configure: check for declaration of getpwuid_r
674
675 On our x86 Android toolchain, getpwuid_r is implemented but the header
676 is missing:
677
678 netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
679
680 Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
681 the prototype to curl_setup.h.
682
683 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
684 Closes #2609
685
686- [Rikard Falkeborn brought this change]
687
688 tests: update .gitignore for libtests
689
690 Closes #2624
691
692- [Rikard Falkeborn brought this change]
693
694 strictness: correct {infof, failf} format specifiers
695
696 Closes #2623
697
698- [Björn Stenberg brought this change]
699
700 option: disallow username in URL
701
702 Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
703 libcurl reject URLs with a username in them.
704
705 Closes #2340
706
707- libcurl-security.3: improved layout for two rememdy lists
708
709- libcurl-security.3: refer to URL instead of in-source markdown file
710
711Viktor Szakats (30 May 2018)
712- curl.rc: embed manifest for correct Windows version detection
713
714 * enable it in `src/Makefile.m32`
715 * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
716 _not_ enabled via the existing `EMBED_MANIFEST` option
717 * enable it for all Windows CMake builds (also disable the built-in
718 minimal manifest, added by CMake by default.)
719
720 For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
721 the list of RC (Resource Compiler) flags to enable the manifest
722 included in `src/curl.rc`. This may require to disable whatever
723 automatic or other means in which way another manifest is added to
724 `curl.exe`.
725
726 Notice that Borland C doesn't support this method due to a
727 long-pending resource compiler bug. Watcom C may also not handle
728 it correctly when the `-zm` `wrc` option is used (this option may
729 be unnecessary though) and regardless of options in certain earlier
730 revisions of the 2.0 beta version.
731
732 Closes https://github.com/curl/curl/pull/1221
733 Fixes https://github.com/curl/curl/issues/2591
734
735Patrick Monnerat (30 May 2018)
736- os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
737
738- os400: implement mime api EBCDIC wrappers
739
740 Also sync ILE/RPG binding to define the new functions.
741
742Daniel Stenberg (29 May 2018)
743- setopt: add TLS 1.3 ciphersuites
744
745 Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
746
747 curl: added --tls13-ciphers and --proxy-tls13-ciphers
748
749 Fixes #2435
750 Reported-by: zzq1015 on github
751 Closes #2607
752
753- configure: override AR_FLAGS to silence warning
754
755 The automake default ar flags are 'cru', but the 'u' flag in there
756 causes warnings on many modern Linux distros. Removing 'u' may have a
757 minor performance impact on older distros but should not cause harm.
758
759 Explained on the automake mailing list already back in April 2015:
760
761 https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
762
763 Reported-by: elephoenix on github
764 Fixes #2617
765 Closes #2619
766
767Sergei Nikulov (29 May 2018)
768- cmake: fixed comments in compile checks code
769
770Daniel Stenberg (29 May 2018)
771- INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
772
773 ... the older description doesn't work
774
775 Reported-by: Peter Varga
776 Fixes #2615
777 Closes #2616
778
779- [Will Dietz brought this change]
780
781 KNOWN_BUGS: restore text regarding #2101.
782
783 This was added earlier but appears to have been removed accidentally.
784
785 AFAICT this is very much still an issue.
786
787 -----
788
789 I say "accidentally" because the text seems to have harmlessly snuck
790 into [1] (which makes no mention of it). [1] was later reverted for
791 unspecified reasons in [2], presumably because the mentioned issue was
792 fixed or invalid.
793
794 [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
795 [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
796
797 Closes #2618
798
799- fnmatch: insist on escaped bracket to match
800
801 A non-escaped bracket ([) is for a character group - as documented. It
802 will *not* match an individual bracket anymore. Test case 1307 updated
803 accordingly to match.
804
805 Problem detected by OSS-Fuzz, although this fix is probably not a final
806 fix for the notorious timeout issues.
807
808 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
809 Closes #2614
810
811Patrick Monnerat (28 May 2018)
812- psl: use latest psl and refresh it periodically
813
814 The latest psl is cached in the multi or share handle. It is refreshed
815 before use after 72 hours.
816 New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
817 If the latest psl is not available, the builtin psl is used.
818
819 Reported-by: Yaakov Selkowitz
820 Fixes #2553
821 Closes #2601
822
823Daniel Stenberg (28 May 2018)
824- [Fabrice Fontaine brought this change]
825
826 configure: fix ssh2 linking when built with a static mbedtls
827
828 The ssh2 pkg-config file could contain the following lines when build
829 with a static version of mbedtls:
830 Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
831 Libs.private: /xxx/libmbedcrypto.a
832
833 This static mbedtls library must be used to correctly detect ssh2
834 support and this library must be copied in libcurl.pc otherwise
835 compilation of any application (such as upmpdcli) with libcurl will fail
836 when trying to found mbedtls functions included in libssh2. So, replace
837 pkg-config --libs-only-l by pkg-config --libs.
838
839 Fixes:
840 - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
841
842 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
843 Closes #2613
844
845- RELEASE-NOTES: synced
846
847- [Bernhard Walle brought this change]
848
849 cmake: check for getpwuid_r
850
851 The autotools-based build system does it, so we do it also in CMake.
852
853 Bug: #2609
854 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
855
856- cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
857
858- [Frank Gevaerts brought this change]
859
860 curl.1: Fix cmdline-opts reference errors.
861
862 --data, --form, and --ntlm were declared to be mutually exclusive with
863 non-existing options. --data and --form referred to --upload (which is
864 short for --upload-file and therefore did work, so this one was merely
865 a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
866
867 Closes #2612
868
869- [Frank Gevaerts brought this change]
870
871 docs: fix cmdline-opts metadata headers case consistency.
872
873 Almost all headers start with an uppercase letter, but some didn't.
874
875- mailmap: Max Savenkov
876
877Sergei Nikulov (28 May 2018)
878- [Max Savenkov brought this change]
879
880 Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
881
882Daniel Stenberg (27 May 2018)
883- mailmap: a Richard Alcock fixup
884
885- [Richard Alcock brought this change]
886
887 schannel: add failf calls for client certificate failures
888
889 Closes #2604
890
891- [Richard Alcock brought this change]
892
893 winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
894
895 Change requirement from $(DISTDIR) to $(DIRDIST)
896
897 closes #2603
898
899- [Richard Alcock brought this change]
900
901 winbuild: only delete OUTFILE if it exists
902
903 This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
904 "Could not find CURL_OBJS.inc.inc" message when building into a clean
905 folder.
906
907 closes #2602
908
909- [Alejandro R. Sedeño brought this change]
910
911 content_encoding: handle zlib versions too old for Z_BLOCK
912
913 Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
914
915 Fixes #2606
916 Closes #2608
917
918- multi: provide a socket to wait for in Curl_protocol_getsock
919
920 ... even when there's no protocol specific handler setup.
921
922 Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
923 Reported-by: Sean Miller
924 Closes #2600
925
926- [Linus Lewandowski brought this change]
927
928 httpauth: add support for Bearer tokens
929
930 Closes #2102
931
932- TODO: CURLINFO_PAUSE_STATE
933
934 Closes #2588
935
936Sergei Nikulov (24 May 2018)
937- cmake: set -d postfix for debug builds if not specified
938 using -DCMAKE_DEBUG_POSTFIX explicitly
939
940 fixes #2121, obsoletes #2384
941
942Daniel Stenberg (23 May 2018)
943- configure: add basic test of --with-ssl prefix
944
945 When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
946 $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
947 error. Helps users detect when giving configure the wrong path.
948
949 Reported-by: Oleg Pudeyev
950 Assisted-by: Per Malmberg
951 Fixes #2580
952
953Patrick Monnerat (22 May 2018)
954- http resume: skip body if http code 416 (range error) is ignored.
955
956 This avoids appending error data to already existing good data.
957
958 Test 92 is updated to match this change.
959 New test 1156 checks all combinations of --range/--resume, --fail,
960 Content-Range header and http status code 200/416.
961
962 Fixes #1163
963 Reported-By: Ithubg on github
964 Closes #2578
965
966Daniel Stenberg (22 May 2018)
967- tftp: make sure error is zero terminated before printfing it
968
969- configure: add missing m4/ax_compile_check_sizeof.m4
970
971 follow-up to mistake in 6876ccf90b4
972
973Jay Satiro (22 May 2018)
974- [Johannes Schindelin brought this change]
975
976 schannel: make CAinfo parsing resilient to CR/LF
977
978 OpenSSL has supported --cacert for ages, always accepting LF-only line
979 endings ("Unix line endings") as well as CR/LF line endings ("Windows
980 line endings").
981
982 When we introduced support for --cacert also with Secure Channel (or in
983 cURL speak: "WinSSL"), we did not take care to support CR/LF line
984 endings, too, even if we are much more likely to receive input in that
985 form when using Windows.
986
987 Let's fix that.
988
989 Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
990 accepts CR/LF input already, and the trailing LF before the END
991 CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
992 we need to care about is the BEGIN CERTIFICATE marker. We do not
993 actually need to verify here that the line ending is CR/LF. Just
994 checking for a CR or an LF is really plenty enough.
995
996 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
997
998 Closes https://github.com/curl/curl/pull/2592
999
1000Daniel Stenberg (22 May 2018)
1001- CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
1002
1003- RELEASE-NOTES: synced
1004
1005- KNOWN_BUGS: mention the -O with %-encoded file names
1006
1007 Closes #2573
1008
1009- checksrc: make sure sizeof() is used *with* parentheses
1010
1011 ... and unify the source code to adhere.
1012
1013 Closes #2563
1014
1015- curl: added --styled-output
1016
1017 It is enabled by default, so --no-styled-output will switch off the
1018 detection/use of bold headers.
1019
1020 Closes #2538
1021
1022- curl: show headers in bold
1023
1024 The feature is only enabled if the output is believed to be a tty.
1025
1026 -J: There's some minor differences and improvements in -J handling, as
1027 now J should work with -i and it actually creates a file first using the
1028 initial name and then *renames* that to the one found in
1029 Content-Disposition (if any).
1030
1031 -i: only shows headers for HTTP transfers now (as documented).
1032 Previously it would also show for pieces of the transfer that were HTTP
1033 (for example when doing FTP over a HTTP proxy).
1034
1035 -i: now shows trailers as well. Previously they were not shown at all.
1036
1037 --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
1038 now done in the header callback.
1039
1040- configure: compile-time SIZEOF checks
1041
1042 ... instead of exeucting code to get the size. Removes the use of
1043 LD_LIBRARY_PATH for this.
1044
1045 Fixes #2586
1046 Closes #2589
1047 Reported-by: Bernhard Walle
1048
1049- configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
1050
1051 ... and export LD_LIBRARY_PATH properly. This is a follow-up from
1052 2d4c215.
1053
1054 Fixes #2586
1055 Reported-by: Bernhard Walle
1056
1057- docs: clarify CURLOPT_HTTPGET somewhat
1058
1059 Reported-by: bsammon on github
1060 Fixes #2590
1061
1062- curl_fnmatch: only allow two asterisks for matching
1063
1064 The previous limit of 5 can still end up in situation that takes a very
1065 long time and consumes a lot of CPU.
1066
1067 If there is still a rare use case for this, a user can provide their own
1068 fnmatch callback for a version that allows a larger set of wildcards.
1069
1070 This commit was triggered by yet another OSS-Fuzz timeout due to this.
1071 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
1072
1073 Closes #2587
1074
1075- checksrc: fix too long line
1076
1077 follow-up to e05ad5d
1078
1079- [Aleks brought this change]
1080
1081 docs: mention HAproxy protocol "version 1"
1082
1083 ...as there's also a version 2.
1084
1085 Closes #2579
1086
1087- examples/progressfunc: make it build on older libcurls
1088
1089 This example was changed in ce2140a8c1 to use the new microsecond based
1090 getinfo option. This change makes it conditionally keep using the older
1091 option so that the example still builds with older libcurl versions.
1092
1093 Closes #2584
1094
1095- stub_gssapi: fix numerous 'unused parameter' warnings
1096
1097 follow-up to d9e92fd9fd1d
1098
1099- [Philip Prindeville brought this change]
1100
1101 getinfo: add microsecond precise timers for various intervals
1102
1103 Provide a set of new timers that return the time intervals using integer
1104 number of microseconds instead of floats.
1105
1106 The new info names are as following:
1107
1108 CURLINFO_APPCONNECT_TIME_T
1109 CURLINFO_CONNECT_TIME_T
1110 CURLINFO_NAMELOOKUP_TIME_T
1111 CURLINFO_PRETRANSFER_TIME_T
1112 CURLINFO_REDIRECT_TIME_T
1113 CURLINFO_STARTTRANSFER_TIME_T
1114 CURLINFO_TOTAL_TIME_T
1115
1116 Closes #2495
1117
1118- openssl: acknowledge --tls-max for default version too
1119
1120 ... previously it only used the max setting if a TLS version was also
1121 explicitly asked for.
1122
1123 Reported-by: byte_bucket
1124 Fixes #2571
1125 Closes #2572
1126
1127- bump: start working on the pending 7.61.0
1128
1129- [Dagobert Michelsen brought this change]
1130
1131 tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
1132
1133 The warning flag leads e.g. Sun Studio compiler to bail out.
1134
1135 Closes #2576
1136
1137- schannel_verify: fix build for non-schannel
1138
1139Jay Satiro (16 May 2018)
1140- rand: fix typo
1141
1142- schannel: disable manual verify if APIs not available
1143
1144 .. because original MinGW and old compilers do not have the Windows API
1145 definitions needed to support manual verification.
1146
1147- [Archangel_SDY brought this change]
1148
1149 schannel: disable client cert option if APIs not available
1150
1151 Original MinGW targets Windows 2000 by default, which lacks some APIs and
1152 definitions for this feature. Disable it if these APIs are not available.
1153
1154 Closes https://github.com/curl/curl/pull/2522
1155
Elliott Hughes1ef06ba2018-05-30 15:43:58 -07001156Version 7.60.0 (15 May 2018)
1157
1158Daniel Stenberg (15 May 2018)
1159- RELEASE-NOTES: 7.60.0 release
1160
1161- THANKS: added people from the curl 7.60.0 release
1162
1163- docs/libcurl/index.html: removed
1164
1165 The HTML files are long gone from the dist, now remove the last HTML
1166 file pointing to those missing files.
1167
1168 d
1169
1170- [steini2000 brought this change]
1171
1172 http2: remove unused variable
1173
1174 Closes #2570
1175
1176- [steini2000 brought this change]
1177
1178 http2: use easy handle of stream for logging
1179
1180- gcc: disable picky gcc-8 function pointer warnings in two places
1181
1182 Reported-by: Rikard Falkeborn
1183 Bug: #2560
1184 Closes #2569
1185
1186- http2: use the correct function pointer typedef
1187
1188 Fixes gcc-8 picky compiler warnings
1189 Reported-by: Rikard Falkeborn
1190 Bug: #2560
1191 Closes #2568
1192
1193- CODE_STYLE: mention return w/o parens, but sizeof with
1194
1195 ... and remove the github markdown syntax so that it renders better on
1196 the web site. Also, don't use back-ticks inlined to allow the CSS to
1197 highlight source code better.
1198
1199- [Rikard Falkeborn brought this change]
1200
1201 examples: Fix format specifiers
1202
1203 Closes #2561
1204
1205- [Rikard Falkeborn brought this change]
1206
1207 tool: Fix format specifiers
1208
1209- [Rikard Falkeborn brought this change]
1210
1211 ntlm: Fix format specifiers
1212
1213- [Rikard Falkeborn brought this change]
1214
1215 tests: Fix format specifiers
1216
1217- [Rikard Falkeborn brought this change]
1218
1219 lib: Fix format specifiers
1220
1221- contributors.sh: use "on github", not at
1222
1223- http2: getsock fix for uploads
1224
1225 When there's an upload in progress, make sure to wait for the socket to
1226 become writable.
1227
1228 Detected-by: steini2000 on github
1229 Bug: #2520
1230 Closes #2567
1231
1232- pingpong: fix response cache memcpy overflow
1233
1234 Response data for a handle with a large buffer might be cached and then
1235 used with the "closure" handle when it has a smaller buffer and then the
1236 larger cache will be copied and overflow the new smaller heap based
1237 buffer.
1238
1239 Reported-by: Dario Weisser
1240 CVE: CVE-2018-1000300
1241 Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
1242
1243- http: restore buffer pointer when bad response-line is parsed
1244
1245 ... leaving the k->str could lead to buffer over-reads later on.
1246
1247 CVE: CVE-2018-1000301
1248 Assisted-by: Max Dymond
1249
1250 Detected by OSS-Fuzz.
1251 Bug: https://curl.haxx.se/docs/adv_2018-b138.html
1252 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
1253
1254Patrick Monnerat (13 May 2018)
1255- cookies: do not take cookie name as a parameter
1256
1257 RFC 6265 section 4.2.1 does not set restrictions on cookie names.
1258 This is a follow-up to commit 7f7fcd0.
1259 Also explicitly check proper syntax of cookie name/value pair.
1260
1261 New test 1155 checks that cookie names are not reserved words.
1262
1263 Reported-By: anshnd at github
1264 Fixes #2564
1265 Closes #2566
1266
1267Daniel Stenberg (12 May 2018)
1268- smb: reject negative file sizes
1269
1270 Assisted-by: Max Dymond
1271
1272 Detected by OSS-Fuzz
1273 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
1274
1275- setup_transfer: deal with both sockets being -1
1276
1277 Detected by Coverity; CID 1435559. Follow-up to f8d608f38d00. It would
1278 index the array with -1 if neither index was a socket.
1279
1280- travis: add build using NSS
1281
1282 Closes #2558
1283
1284- [Sunny Purushe brought this change]
1285
1286 openssl: change FILE ops to BIO ops
1287
1288 To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES
1289 handling is causing problems. This fix changes the OpenSSL backend code
1290 to use BIO functions instead of FILE I/O functions to circumvent those
1291 problems.
1292
1293 Closes #2512
1294
1295- travis: add a build using WolfSSL
1296
1297 Assisted-by: Dan Fandrich
1298
1299 Closes #2528
1300
1301- RELEASE-NOTES: typo
1302
1303- RELEASE-NOTES: synced
1304
1305- [Daniel Gustafsson brought this change]
1306
1307 URLs: fix one more http url
1308
1309 This file wasn't included in commit 4af40b3646d3b09 which updated all
1310 haxx.se http urls to https. The file was committed prior to that update,
1311 but may have been merged after it and hence didn't get updated.
1312
1313 Closes #2550
1314
1315- github/lock: auto-lock closed issues after 90 days of inactivity
1316
1317- vtls: fix missing commas
1318
1319 follow-up to e66cca046cef
1320
1321- vtls: use unified "supports" bitfield member in backends
1322
1323 ... instead of previous separate struct fields, to make it easier to
1324 extend and change individual backends without having to modify them all.
1325
1326 closes #2547
1327
1328- transfer: don't unset writesockfd on setup of multiplexed conns
1329
1330 Curl_setup_transfer() can be called to setup a new individual transfer
1331 over a multiplexed connection so it shouldn't unset writesockfd.
1332
1333 Bug: #2520
1334 Closes #2549
1335
1336- [Frank Gevaerts brought this change]
1337
1338 configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
1339
1340 They are removed from the compiler flags.
1341
1342 This ensures that make dependency tracking will force a rebuild whenever
1343 configure --enable-debug or --enable-curldebug changes.
1344
1345 Closes #2548
1346
1347- http: don't set the "rewind" flag when not uploading anything
1348
1349 It triggers an assert.
1350
1351 Detected by OSS-Fuzz
1352 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
1353 Closes #2546
1354
1355- travis: add an mbedtls build
1356
1357 Closes #2531
1358
1359- configure: only check for CA bundle for file-using SSL backends
1360
1361 When only building with SSL backends that don't use the CA bundle file
1362 (by default), skip the check.
1363
1364 Fixes #2543
1365 Fixes #2180
1366 Closes #2545
1367
1368- ssh-libssh.c: fix left shift compiler warning
1369
1370 ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to
1371 represent, but 'int' only has 32 bits [-Wshift-overflow=]
1372
1373 'len' will never be that big anyway so I converted the run-time check to
1374 a regular assert.
1375
1376- [Stephan Mühlstrasser brought this change]
1377
1378 URL: fix ASCII dependency in strcpy_url and strlen_url
1379
1380 Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the
1381 changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of
1382 the problem that strcpy_url() was modified unilaterally without also
1383 modifying strlen_url(). As a consequence strcpy_url() was again
1384 depending on ASCII encoding.
1385
1386 This change fixes strlen_url() and strcpy_url() in parallel to use a
1387 common host-encoding independent criterion for deciding whether an URL
1388 character must be %-escaped.
1389
1390 Closes #2535
1391
1392- [Denis Ollier brought this change]
1393
1394 docs: remove extraneous commas in man pages
1395
1396 Closes #2544
1397
1398- RELEASE-NOTES: synced
1399
1400- Revert "TODO: remove configure --disable-pthreads"
1401
1402 This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3.
1403
1404 --disable-pthreads can be used to disable pthreads and get the threaded
1405 resolver to use the windows threading when building with mingw.
1406
1407- vtls: don't define MD5_DIGEST_LENGTH for wolfssl
1408
1409 ... as it defines it (too)
1410
1411- TODO: remove configure --disable-pthreads
1412
1413Jay Satiro (2 May 2018)
1414- [David Garske brought this change]
1415
1416 wolfssl: Fix non-blocking connect
1417
1418 Closes https://github.com/curl/curl/pull/2542
1419
1420Daniel Stenberg (30 Apr 2018)
1421- CURLOPT_URL.3: add ENCODING section [ci skip]
1422
1423 Feedback-by: Michael Kilburn
1424
1425- KNOWN_BUGS: Client cert with Issuer DN differs between backends
1426
1427 Closes #1411
1428
1429- KNOWN_BUGS: Passive transfer tries only one IP address
1430
1431 Closes #1508
1432
1433- KNOWN_BUGS: --upload-file . hang if delay in STDIN
1434
1435 Closes #2051
1436
1437- KNOWN_BUGS: Connection information when using TCP Fast Open
1438
1439 Closes #1332
1440
1441- travis: enable libssh2 on both macos and Linux
1442
1443 It seems to not be detected by default anymore (which is a bug I
1444 believe)
1445
1446 Closes #2541
1447
1448- TODO: Support the clienthello extension
1449
1450 Closes #2299
1451
1452- TODO: CLOEXEC
1453
1454 Closes #2252
1455
1456- tests: provide 'manual' as a feature to optionally require
1457
1458 ... and make test 1026 rely on that feature so that --disable-manual
1459 builds don't cause test failures.
1460
1461 Reported-by: Max Dymond and Anders Roxell
1462 Fixes #2533
1463 Closes #2540
1464
1465- CURLINFO_PROTOCOL.3: mention the existing defined names
1466
1467Jay Satiro (27 Apr 2018)
1468- [Daniel Gustafsson brought this change]
1469
1470 cookies: remove unused macro
1471
1472 Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused,
1473 so remove as it's not part of the published API.
1474
1475 Closes https://github.com/curl/curl/pull/2537
1476
1477Daniel Stenberg (27 Apr 2018)
1478- [Daniel Gustafsson brought this change]
1479
1480 checksrc: force indentation of lines after an else
1481
1482 This extends the INDENTATION case to also handle 'else' statements
1483 and require proper indentation on the following line. Also fixes the
1484 offending cases found in the codebase.
1485
1486 Closes #2532
1487
1488- http2: fix null pointer dereference in http2_connisdead
1489
1490 This function can get called on a connection that isn't setup enough to
1491 have the 'recv_underlying' function pointer initialized so it would try
1492 to call the NULL pointer.
1493
1494 Reported-by: Dario Weisser
1495
1496 Follow-up to db1b2c7fe9b093f8 (never shipped in a release)
1497 Closes #2536
1498
1499- http2: get rid of another strstr()
1500
1501 Follow-up to 1514c44655e12e: replace another strstr() call done on a
1502 buffer that might not be zero terminated - with a memchr() call, even if
1503 we know the substring will be found.
1504
1505 Assisted-by: Max Dymond
1506
1507 Detected by OSS-Fuzz
1508 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
1509
1510 Closes #2534
1511
1512- cyassl: adapt to libraries without TLS 1.0 support built-in
1513
1514 WolfSSL doesn't enable it by default anymore
1515
1516- configure: provide --with-wolfssl as an alias for --with-cyassl
1517
1518- RELEASE-NOTES: synced
1519
1520- [Daniel Gustafsson brought this change]
1521
1522 os400.c: fix ASSIGNWITHINCONDITION checksrc warnings
1523
1524 All occurrences of assignment within conditional expression in
1525 os400sys.c rewritten into two steps: first assignment and then the check
1526 on the success of the assignment. Also adjust related incorrect brace
1527 positions to match project indentation style.
1528
1529 This was spurred by seeing "if((inp = input_token))", but while in there
1530 all warnings were fixed.
1531
1532 There should be no functional change from these changes.
1533
1534 Closes #2525
1535
1536- [Daniel Gustafsson brought this change]
1537
1538 cookies: ensure that we have cookies before writing jar
1539
1540 The jar should be written iff there are cookies, so ensure that we still
1541 have cookies after expiration to avoid creating an empty file.
1542
1543 Closes #2529
1544
1545- strcpy_url: only %-encode values >= 0x80
1546
1547 OSS-Fuzz detected
1548
1549 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
1550
1551 Broke in dd7521bcc1b7
1552
1553- mime: avoid NULL pointer dereference risk
1554
1555 Coverity detected, CID 1435120
1556
1557 Closes #2527
1558
1559- [Stephan Mühlstrasser brought this change]
1560
1561 ctype: restore character classification for non-ASCII platforms
1562
1563 With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic
1564 character classification macros and functions were introduced in
1565 curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on
1566 non-ASCII, e.g. EBCDIC platforms. This change restores the previous set
1567 of character classification macros when CURL_DOES_CONVERSIONS is
1568 defined.
1569
1570 Closes #2494
1571
1572- ftplistparser: keep state between invokes
1573
1574 Fixes FTP wildcard parsing when done over a number of read buffers.
1575
1576 Regression from f786d1f14
1577
1578 Reported-by: wncboy on github
1579 Fixes #2445
1580 Closes #2526
1581
1582- examples/http2-upload: expand buffer to avoid silly warning
1583
1584 http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated
1585 writing between 2 and 11 bytes into a region of size between 8 and 17
1586
1587- examples/sftpuploadresume: typecast fseek argument to long
1588
1589 /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long
1590 int' from 'curl_off_t {aka long long int}' may alter its value
1591
1592- Revert "ftplistparser: keep state between invokes"
1593
1594 This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934.
1595
1596 Caused fuzzer problems on travis not seen when this was a PR!
1597
1598- Curl_memchr: zero length input can't match
1599
1600 Avoids undefined behavior.
1601
1602 Reported-by: Geeknik Labs
1603
1604- ftplistparser: keep state between invokes
1605
1606 Fixes FTP wildcard parsing when doing over a number of read buffers.
1607
1608 Regression from f786d1f14
1609
1610 Reported-by: wncboy on github
1611 Fixes #2445
1612 Closes #2519
1613
1614- ftplistparser: renamed some members and variables
1615
1616 ... to make them better spell out what they're for.
1617
1618- RELEASE-NOTES: synced
1619
1620- [Christian Schmitz brought this change]
1621
1622 curl_global_sslset: always provide available backends
1623
1624 Closes #2499
1625
1626- http2: convert an assert to run-time check
1627
1628 Fuzzing has proven we can reach code in on_frame_recv with status_code
1629 not having been set, so let's detect that in run-time (instead of with
1630 assert) and error error accordingly.
1631
1632 (This should no longer happen with the latest nghttp2)
1633
1634 Detected by OSS-Fuzz
1635 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
1636 Closes #2514
1637
1638- curl.1: clarify that options and URLs can be mixed
1639
1640 Fixes #2515
1641 Closes #2517
1642
1643Jay Satiro (23 Apr 2018)
1644- [Archangel_SDY brought this change]
1645
1646 CURLOPT_SSLCERT.3: improve WinSSL-specific usage info
1647
1648 Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
1649
1650 Closes https://github.com/curl/curl/pull/2504
1651
1652- [Archangel_SDY brought this change]
1653
1654 schannel: fix build error on targets <= XP
1655
1656 - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't
1657 support the latter.
1658
1659 Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
1660
1661 Closes https://github.com/curl/curl/pull/2504
1662
1663Daniel Stenberg (23 Apr 2018)
1664- Revert "ftplistparser: keep state between invokes"
1665
1666 This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9.
1667
1668 Unfortunately this fix introduces memory leaks I've not been able to fix
1669 in several days. Reverting this for now to get the leaks fixed.
1670
1671Jay Satiro (21 Apr 2018)
1672- tool_help: clarify --max-time unit of time is seconds
1673
1674 Before:
1675 -m, --max-time <time> Maximum time allowed for the transfer
1676
1677 After:
1678 -m, --max-time <seconds> Maximum time allowed for the transfer
1679
1680Daniel Stenberg (20 Apr 2018)
1681- http2: handle GOAWAY properly
1682
1683 When receiving REFUSED_STREAM, mark the connection for close and retry
1684 streams accordingly on another/fresh connection.
1685
1686 Reported-by: Terry Wu
1687 Fixes #2416
1688 Fixes #1618
1689 Closes #2510
1690
1691- http2: clear the "drain counter" when a stream is closed
1692
1693 This fixes the notorious "httpc->drain_total >= data->state.drain"
1694 assert.
1695
1696 Reported-by: Anders Bakken
1697
1698 Fixes #1680
1699 Closes #2509
1700
1701- http2: avoid strstr() on data not zero terminated
1702
1703 It's not strictly clear if the API contract allows us to call strstr()
1704 on a string that isn't zero terminated even when we know it will find
1705 the substring, and clang's ASAN check dislikes us for it.
1706
1707 Also added a check of the return code in case it fails, even if I can't
1708 think of a situation how that can trigger.
1709
1710 Detected by OSS-Fuzz
1711 Closes #2513
1712 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
1713
1714- [Stephan Mühlstrasser brought this change]
1715
1716 openssl: fix subjectAltName check on non-ASCII platforms
1717
1718 Curl_cert_hostcheck operates with the host character set, therefore the
1719 ASCII subjectAltName string retrieved with OpenSSL must be converted to
1720 the host encoding before comparison.
1721
1722 Closes #2493
1723
1724Jay Satiro (20 Apr 2018)
1725- openssl: Add support for OpenSSL 1.1.1 verbose-mode trace messages
1726
1727 - Support handling verbose-mode trace messages of type
1728 SSL3_RT_INNER_CONTENT_TYPE, SSL3_MT_ENCRYPTED_EXTENSIONS,
1729 SSL3_MT_END_OF_EARLY_DATA, SSL3_MT_KEY_UPDATE, SSL3_MT_NEXT_PROTO,
1730 SSL3_MT_MESSAGE_HASH
1731
1732 Reported-by: iz8mbw@users.noreply.github.com
1733
1734 Fixes https://github.com/curl/curl/issues/2403
1735
1736Daniel Stenberg (19 Apr 2018)
1737- ftplistparser: keep state between invokes
1738
1739 Regression from f786d1f14
1740
1741 Reported-by: wncboy on github
1742 Fixes #2445
1743 Closes #2508
1744
1745- detect_proxy: only show proxy use if it had contents
1746
1747- http2: handle on_begin_headers() called more than once
1748
1749 This triggered an assert if called more than once in debug mode (and a
1750 memory leak if not debug build). With the right sequence of HTTP/2
1751 headers incoming it can happen.
1752
1753 Detected by OSS-Fuzz
1754
1755 Closes #2507
1756 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
1757
1758Jay Satiro (18 Apr 2018)
1759- [Dan McNulty brought this change]
1760
1761 schannel: add support for CURLOPT_CAINFO
1762
1763 - Move verify_certificate functionality in schannel.c into a new
1764 file called schannel_verify.c. Additionally, some structure defintions
1765 from schannel.c have been moved to schannel.h to allow them to be
1766 used in schannel_verify.c.
1767
1768 - Make verify_certificate functionality for Schannel available on
1769 all versions of Windows instead of just Windows CE. verify_certificate
1770 will be invoked on Windows CE or when the user specifies
1771 CURLOPT_CAINFO and CURLOPT_SSL_VERIFYPEER.
1772
1773 - In verify_certificate, create a custom certificate chain engine that
1774 exclusively trusts the certificate store backed by the CURLOPT_CAINFO
1775 file.
1776
1777 - doc updates of --cacert/CAINFO support for schannel
1778
1779 - Use CERT_NAME_SEARCH_ALL_NAMES_FLAG when invoking CertGetNameString
1780 when available. This implements a TODO in schannel.c to improve
1781 handling of multiple SANs in a certificate. In particular, all SANs
1782 will now be searched instead of just the first name.
1783
1784 - Update tool_operate.c to not search for the curl-ca-bundle.crt file
1785 when using Schannel to maintain backward compatibility. Previously,
1786 any curl-ca-bundle.crt file found in that search would have been
1787 ignored by Schannel. But, with CAINFO support, the file found by
1788 that search would have been used as the certificate store and
1789 could cause issues for any users that have curl-ca-bundle.crt in
1790 the search path.
1791
1792 - Update url.c to not set the build time CURL_CA_BUNDLE if the selected
1793 SSL backend is Schannel. We allow setting CA location for schannel
1794 only when explicitly specified by the user via CURLOPT_CAINFO /
1795 --cacert.
1796
1797 - Add new test cases 3000 and 3001. These test cases check that the first
1798 and last SAN, respectively, matches the connection hostname. New test
1799 certificates have been added for these cases. For 3000, the certificate
1800 prefix is Server-localhost-firstSAN and for 3001, the certificate
1801 prefix is Server-localhost-secondSAN.
1802
1803 - Remove TODO 15.2 (Add support for custom server certificate
1804 validation), this commit addresses it.
1805
1806 Closes https://github.com/curl/curl/pull/1325
1807
1808- schannel: fix warning
1809
1810 - Fix warning 'integer from pointer without a cast' on 3rd arg in
1811 CertOpenStore. The arg type HCRYPTPROV may be a pointer or integer
1812 type of the same size.
1813
1814 Follow-up to e35b025.
1815
1816 Caught by Marc's CI builds.
1817
1818- [Jakub Wilk brought this change]
1819
1820 docs: fix typos
1821
1822 Closes https://github.com/curl/curl/pull/2503
1823
1824Daniel Stenberg (17 Apr 2018)
1825- RELEASE-NOTES: synced
1826
1827Jay Satiro (17 Apr 2018)
1828- [Kees Dekker brought this change]
1829
1830 winbuild: Support custom devel paths for each dependency
1831
1832 - Support custom devel paths for c-ares, mbedTLS, nghttp2, libSSH2,
1833 OpenSSL and zlib. Respectively: CARES_PATH, MBEDTLS_PATH,
1834 NGHTTP2_PATH, SSH2_PATH, SSL_PATH and ZLIB_PATH.
1835
1836 - Use lib.exe for making the static library instead of link.exe /lib.
1837 The latter is undocumented and could cause problems as noted in the
1838 comments.
1839
1840 - Remove a dangling URL that no longer worked. (I was not able to find
1841 the IDN download at MSDN/microsoft.com, so it seems to be removed.)
1842
1843 - Remove custom override for release-ssh2-ssl-dll-zlib configuration.
1844 Nobody knows why it was there and as far as we can see is unnecessary.
1845
1846 Closes https://github.com/curl/curl/pull/2474
1847
1848Daniel Stenberg (17 Apr 2018)
1849- [Jess brought this change]
1850
1851 README.md: add backers and sponsors
1852
1853 Closes #2484
1854
1855- [Archangel_SDY brought this change]
1856
1857 schannel: add client certificate authentication
1858
1859 Users can now specify a client certificate in system certificates store
1860 explicitly using expression like `--cert "CurrentUser\MY\<thumbprint>"`
1861
1862 Closes #2376
1863
1864Marcel Raad (16 Apr 2018)
1865- [toughengineer brought this change]
1866
1867 ntlm_sspi: fix authentication using Credential Manager
1868
1869 If you pass empty user/pass asking curl to use Windows Credential
1870 Storage (as stated in the docs) and it has valid credentials for the
1871 domain, e.g.
1872 curl -v -u : --ntlm example.com
1873 currently authentication fails.
1874 This change fixes it by providing proper SPN string to the SSPI API
1875 calls.
1876
1877 Fixes https://github.com/curl/curl/issues/1622
1878 Closes https://github.com/curl/curl/pull/1660
1879
1880Daniel Stenberg (16 Apr 2018)
1881- configure: keep LD_LIBRARY_PATH changes local
1882
1883 ... only set it when we actually have to run tests to reduce its impact
1884 on for example build commands etc.
1885
1886 Fixes #2490
1887 Closes #2492
1888
1889 Reported-by: Dmitry Mikhirev
1890
1891Marcel Raad (16 Apr 2018)
1892- urldata: make service names unconditional
1893
1894 The ifdefs have become quite long. Also, the condition for the
1895 definition of CURLOPT_SERVICE_NAME and for setting it from
1896 CURLOPT_SERVICE_NAME have diverged. We will soon also need the two
1897 options for NTLM, at least when using SSPI, for
1898 https://github.com/curl/curl/pull/1660.
1899 Just make the definitions unconditional to make that easier.
1900
1901 Closes https://github.com/curl/curl/pull/2479
1902
1903Daniel Stenberg (16 Apr 2018)
1904- test1148: tolerate progress updates better
1905
1906 Fixes #2446
1907 Closes #2488
1908
1909- [Christian Schmitz brought this change]
1910
1911 ssh: show libSSH2 error code when closing fails
1912
1913 Closes #2500
1914
1915Jay Satiro (15 Apr 2018)
1916- [Daniel Gustafsson brought this change]
1917
1918 vauth: Fix typo
1919
1920 Address various spellings of "credentials".
1921
1922 Closes https://github.com/curl/curl/pull/2496
1923
1924- [Dagobert Michelsen brought this change]
1925
1926 system.h: Add sparcv8plus to oracle/sunpro 32-bit detection
1927
1928 With specific compiler options selecting the arch like -xarch=sparc on
1929 newer compilers like Oracle Studio 12.4 there is no definition of
1930 __sparcv8 but __sparcv8plus which means the V9 ISA, but limited to the
1931 32ÎíÎñbit subset defined by the V8plus ISA specification, without the
1932 Visual Instruction Set (VIS), and without other implementation-specific
1933 ISA extensions. So it should be the same as __sparcv8.
1934
1935 Closes https://github.com/curl/curl/pull/2491
1936
1937- [Daniel Gustafsson brought this change]
1938
1939 checksrc: Fix typo
1940
1941 Fix typo in "semicolon" spelling and remove stray tab character.
1942
1943 Closes https://github.com/curl/curl/pull/2498
1944
1945- [Daniel Gustafsson brought this change]
1946
1947 all: Refactor malloc+memset to use calloc
1948
1949 When a zeroed out allocation is required, use calloc() rather than
1950 malloc() followed by an explicit memset(). The result will be the
1951 same, but using calloc() everywhere increases consistency in the
1952 codebase and avoids the risk of subtle bugs when code is injected
1953 between malloc and memset by accident.
1954
1955 Closes https://github.com/curl/curl/pull/2497
1956
1957Daniel Stenberg (12 Apr 2018)
1958- duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
1959
1960 Verified in test 1502 now
1961
1962 Fixes #2485
1963 Closes #2486
1964 Reported-by: Ernst Sjöstrand
1965
1966- mailmap: add a monnerat fixup [ci skip]
1967
1968- proxy: show getenv proxy use in verbose output
1969
1970 ... to aid debugging etc as it sometimes isn't immediately obvious why
1971 curl uses or doesn't use a proxy.
1972
1973 Inspired by #2477
1974
1975 Closes #2480
1976
1977- travis: build libpsl and make builds use it
1978
1979 closes #2471
1980
1981- travis: bump to clang 6 and gcc 7
1982
1983 Extra-eye-on-this-by: Marcel Raad
1984
1985 Closes #2478
1986
1987Marcel Raad (10 Apr 2018)
1988- travis: use trusty for coverage build
1989
1990 This works now and precise is in the process of being decommissioned.
1991
1992 Closes https://github.com/curl/curl/pull/2476
1993
1994- lib: silence null-dereference warnings
1995
1996 In debug mode, MingGW-w64's GCC 7.3 issues null-dereference warnings
1997 when dereferencing pointers after DEBUGASSERT-ing that they are not
1998 NULL.
1999 Fix this by removing the DEBUGASSERTs.
2000
2001 Suggested-by: Daniel Stenberg
2002 Ref: https://github.com/curl/curl/pull/2463
2003
2004- [Kees Dekker brought this change]
2005
2006 winbuild: fix URL
2007
2008 Follow up on https://github.com/curl/curl/pull/2472.
2009 Now using en-us instead of nl-nl as language code in the URL.
2010
2011 Closes https://github.com/curl/curl/pull/2475
2012
2013Daniel Stenberg (9 Apr 2018)
2014- [Kees Dekker brought this change]
2015
2016 winbuild: updated the documentation
2017
2018 The setenv command no longer exists and visual studio build prompts got
2019 changed. Used Visual Studio 2015/2017 as reference.
2020
2021 Closes #2472
2022
2023- test1136: fix cookie order after commit c990eadd1277
2024
2025- build: cleanup to fix clang warnings/errors
2026
2027 unit1309 and vtls/gtls: error: arithmetic on a null pointer treated as a
2028 cast from integer to pointer is a GNU extension
2029
2030 Reported-by: Rikard Falkeborn
2031
2032 Fixes #2466
2033 Closes #2468
2034
2035Jay Satiro (7 Apr 2018)
2036- examples/sftpuploadresmue: Fix Windows large file seek
2037
2038 - Use _fseeki64 instead of fseek (long) to seek curl_off_t in Windows.
2039
2040 - Use CURL_FORMAT_CURL_OFF_T specifier instead of %ld to print
2041 curl_off_t.
2042
2043 Caught by Marc's CI builds.
2044
2045Daniel Stenberg (7 Apr 2018)
2046- curl_setup: provide a CURL_SA_FAMILY_T type if none exists
2047
2048 ... and use this type instead of 'sa_family_t' in the code since several
2049 platforms don't have it.
2050
2051 Closes #2463
2052
2053- [Eric Gallager brought this change]
2054
2055 build: add picky compiler warning flags for gcc 6 and 7
2056
2057- configure: detect sa_family_t
2058
2059Jay Satiro (7 Apr 2018)
2060- [Stefan Agner brought this change]
2061
2062 tool_operate: Fix retry on FTP 4xx to ignore other protocols
2063
2064 Only treat response code as FTP response codes in case the
2065 protocol type is FTP.
2066
2067 This fixes an issue where an HTTP download was treated as FTP
2068 in case libcurl returned with 33. This happens when the
2069 download has already finished and the server responses 416:
2070 HTTP/1.1 416 Requested Range Not Satisfiable
2071
2072 This should not be treated as an FTP error.
2073
2074 Fixes #2464
2075 Closes #2465
2076
2077Daniel Stenberg (6 Apr 2018)
2078- hash: calculate sizes with size_t instead of longs
2079
2080 ... since they return size_t anyway!
2081
2082 closes #2462
2083
2084- RELEASE-NOTES: synced
2085
2086- [Jay Satiro brought this change]
2087
2088 build-openssl.bat: Refer to VS2017 as VC14.1 instead of VC15
2089
2090 .. and do the same for build-wolfssl.bat.
2091
2092 Because MS calls it VC14.1.
2093
2094 Closes https://github.com/curl/curl/pull/2189
2095
2096- [Kees Dekker brought this change]
2097
2098 winbuild: make the clean target work without build-type
2099
2100 Due to the check in Makefile.vc and MakefileBuild.vc, no make call can
2101 be invoked unless a build-type was specified. However, a clean target
2102 only existed when a build type was specified. As a result, the clean
2103 target was unreachable. Made clean target unconditional.
2104
2105 Closes #2455
2106
2107- [patelvivekv1993 brought this change]
2108
2109 build-openssl.bat: allow custom paths for VS and perl
2110
2111 Fixes #2430
2112 Closes #2457
2113
2114- [Laurie Clark-Michalek brought this change]
2115
2116 FTP: allow PASV on IPv6 connections when a proxy is being used
2117
2118 In the situation of a client connecting to an FTP server using an IPv6
2119 tunnel proxy, the connection info will indicate that the connection is
2120 IPv6. However, because the server behing the proxy is IPv4, it is
2121 permissable to attempt PSV mode. In the case of the FTP server being
2122 IPv4 only, EPSV will always fail, and with the current logic curl will
2123 be unable to connect to the server, as the IPv6 fwdproxy causes curl to
2124 think that EPSV is impossible.
2125
2126 Closes #2432
2127
2128- [Jon DeVree brought this change]
2129
2130 file: restore old behavior for file:////foo/bar URLs
2131
2132 curl 7.57.0 and up interpret this according to Appendix E.3.2 of RFC
2133 8089 but then returns an error saying this is unimplemented. This is
2134 actually a regression in behavior on both Windows and Unix.
2135
2136 Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
2137 then passed to the relevant OS API. This means that the behavior of this
2138 case is actually OS dependent.
2139
2140 The Unix path resolution rules say that the OS must handle swallowing
2141 the extra "/" and so this path is the same as "/foo/bar"
2142
2143 The Windows path resolution rules say that this is a UNC path and
2144 automatically handles the SMB access for the program. So curl on Windows
2145 was already doing Appendix E.3.2 without any special code in curl.
2146
2147 Regression
2148
2149 Closes #2438
2150
2151- [Gaurav Malhotra brought this change]
2152
2153 Revert "openssl: Don't add verify locations when verifypeer==0"
2154
2155 This reverts commit dc85437736e1fc90e689bb1f6c51c8f1aa9430eb.
2156
2157 libcurl (with the OpenSSL backend) performs server certificate verification
2158 even if verifypeer == 0 and the verification result is available using
2159 CURLINFO_SSL_VERIFYRESULT. The commit that is being reverted caused the
2160 CURLINFO_SSL_VERIFYRESULT to not have useful information for the
2161 verifypeer == 0 use case (it would always have
2162 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY).
2163
2164 Closes #2451
2165
2166- [Wyatt O'Day brought this change]
2167
2168 tls: fix mbedTLS 2.7.0 build + handle sha256 failures
2169
2170 (mbedtls 2.70 compiled with MBEDTLS_DEPRECATED_REMOVED)
2171
2172 Closes #2453
2173
2174- [Lauri Kasanen brought this change]
2175
2176 cookie: case-insensitive hashing for the domains
2177
2178 closes #2458
2179
2180Patrick Monnerat (4 Apr 2018)
2181- cookie: fix and optimize 2nd top level domain name extraction
2182
2183 This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
2184 is processed.
2185
2186 test46 updated to cover this case.
2187
2188 Follow-up to commit c990ead.
2189
2190 Ref: https://github.com/curl/curl/pull/2440
2191
2192Daniel Stenberg (4 Apr 2018)
2193- openssl: provide defines for argument typecasts to build warning-free
2194
2195 ... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
2196
2197- [Bernard Spil brought this change]
2198
2199 openssl: fix build with LibreSSL 2.7
2200
2201 - LibreSSL 2.7 implements (most of) OpenSSL 1.1 API
2202
2203 Fixes #2319
2204 Closes #2447
2205 Closes #2448
2206
2207 Signed-off-by: Bernard Spil <brnrd@FreeBSD.org>
2208
2209- [Lauri Kasanen brought this change]
2210
2211 cookie: store cookies per top-level-domain-specific hash table
2212
2213 This makes libcurl handle thousands of cookies much better and speedier.
2214
2215 Closes #2440
2216
2217- [Lauri Kasanen brought this change]
2218
2219 cookies: when reading from a file, only remove_expired once
2220
2221 This drops the cookie load time for 8k cookies from 178ms to 15ms.
2222
2223 Closes #2441
2224
2225- test1148: set a fixed locale for the test
2226
2227 ...as otherwise it might use a different decimal sign.
2228
2229 Bug: #2436
2230 Reported-by: Oumph on github
2231
2232Jay Satiro (31 Mar 2018)
2233- docs: fix CURLINFO_*_T examples use of CURL_FORMAT_CURL_OFF_T
2234
2235 - Put a percent sign before each CURL_FORMAT_CURL_OFF_T in printf.
2236
2237 For example "%" CURL_FORMAT_CURL_OFF_T becomes %lld or similar.
2238
2239 Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
2240 Reported-by: David L.
2241
2242Sergei Nikulov (27 Mar 2018)
2243- [Michał Janiszewski brought this change]
2244
2245 cmake: Add advapi32 as explicit link library for win32
2246
2247 ARM targets need advapi32 explicitly.
2248
2249 Closes #2363
2250
2251Daniel Stenberg (27 Mar 2018)
2252- TODO: connection cache sharing is now supporte
2253
2254Jay Satiro (26 Mar 2018)
2255- travis: enable apt retry on fail
2256
2257 This is a workaround for an unsolved travis issue that is causing CI
2258 instances to sporadically fail due to 'unable to connect' issues during
2259 apt stage.
2260
2261 Ref: https://github.com/travis-ci/travis-ci/issues/8507
2262 Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
2263
2264Michael Kaufmann (26 Mar 2018)
2265- runtests.pl: fix warning 'use of uninitialized value'
2266
2267 follow-up to a9a7b60
2268
2269 Closes #2428
2270
2271Daniel Stenberg (24 Mar 2018)
2272- gitignore: ignore more generated files
2273
2274- threaded resolver: track resolver time and set suitable timeout values
2275
2276 In order to make curl_multi_timeout() return suitable "sleep" times even
2277 when there's no socket to wait for while the name is being resolved in a
2278 helper thread.
2279
2280 It will increases the timeouts as time passes.
2281
2282 Closes #2419
2283
2284- [Howard Chu brought this change]
2285
2286 openldap: fix for NULL return from ldap_get_attribute_ber()
2287
2288 Closes #2399
2289
2290GitHub (22 Mar 2018)
2291- [Sergei Nikulov brought this change]
2292
2293 travis-ci: enable -Werror for CMake builds (#2418)
2294
2295- [Sergei Nikulov brought this change]
2296
2297 cmake: avoid warn-as-error during config checks (#2411)
2298
2299 - Move the CURL_WERROR option processing after the configuration checks
2300 to avoid failures in case of warnings during the configuration checks.
2301
2302 This is a partial fix for #2358
2303
2304- [Sergei Nikulov brought this change]
2305
2306 timeval: remove compilation warning by casting (#2417)
2307
2308 This is fixes #2358
2309
2310Daniel Stenberg (22 Mar 2018)
2311- http2: read pending frames (including GOAWAY) in connection-check
2312
2313 If a connection has received a GOAWAY frame while not being used, the
2314 function now reads frames off the connection before trying to reuse it
2315 to avoid reusing connections the server has told us not to use.
2316
2317 Reported-by: Alex Baines
2318 Fixes #1967
2319 Closes #2402
2320
2321- [Bas van Schaik brought this change]
2322
2323 CI: add lgtm.yml for tweaking lgtm.com analysis
2324
2325 Closes #2414
2326
2327- CURLINFO_SSL_VERIFYRESULT.3: fix the example, add some text
2328
2329 Reported-by: Michal Trybus
2330
2331 Fixes #2400
2332
2333- TODO: expand ~/ in config files
2334
2335 Closes #2317
2336
2337- cookie.d: mention that "-" as filename means stdin
2338
2339 Reported-by: Dongliang Mu
2340 Fixes #2410
2341
2342- CURLINFO_COOKIELIST.3: made the example not leak memory
2343
2344 Reported-by: Muz Dima
2345
2346- vauth/cleartext: fix integer overflow check
2347
2348 Make the integer overflow check not rely on the undefined behavior that
2349 a size_t wraps around on overflow.
2350
2351 Detected by lgtm.com
2352 Closes #2408
2353
2354- lib/curl_path.h: add #ifdef header guard
2355
2356 Detected by lgtm.com
2357
2358- vauth/ntlm.h: fix the #ifdef header guard
2359
2360 Detected by lgtm.com
2361
2362Jay Satiro (20 Mar 2018)
2363- examples/hiperfifo: checksrc compliance
2364
2365Daniel Stenberg (19 Mar 2018)
2366- [Nikos Tsipinakis brought this change]
2367
2368 parsedate: support UT timezone
2369
2370 RFC822 section 5.2 mentions Universal Time, 'UT', to be synonymous with
2371 GMT.
2372
2373 Closes #2401
2374
2375- RELEASE-NOTES: synced
2376
2377- [Don brought this change]
2378
2379 cmake: add support for brotli
2380
2381 Currently CMake cannot detect Brotli support. This adds detection of the
2382 libraries and associated header files. It also adds this to the
2383 generated config.
2384
2385 Closes #2392
2386
2387- [Chris Araman brought this change]
2388
2389 darwinssl: fix iOS build
2390
2391Patrick Monnerat (18 Mar 2018)
2392- ILE/RPG binding: Add CURLOPT_HAPROXYPROTOCOL/Fix CURLOPT_DNS_SHUFFLE_ADDRESSES
2393
2394Daniel Stenberg (17 Mar 2018)
2395- [Rick Deist brought this change]
2396
2397 resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES
2398
2399 This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
2400 shuffling of IP addresses returned for a hostname when there is more
2401 than one. This is useful when the application knows that a round robin
2402 approach is appropriate and is willing to accept the consequences of
2403 potentially discarding some preference order returned by the system's
2404 implementation.
2405
2406 Closes #1694
2407
2408- add_handle/easy_perform: clear errorbuffer on start if set
2409
2410 To offer applications a more defined behavior, we clear the buffer as
2411 early as possible.
2412
2413 Assisted-by: Jay Satiro
2414
2415 Fixes #2190
2416 Closes #2377
2417
2418- [Lawrence Matthews brought this change]
2419
2420 CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol
2421
2422 Add --haproxy-protocol for the command line tool
2423
2424 Closes #2162
2425
2426- curl_version_info.3: fix ssl_version description
2427
2428 Reported-by: Vincas Razma
2429 Fixes #2364
2430
2431- multi: improved pending transfers handling => improved performance
2432
2433 When a transfer is requested to get done and it is put in the pending
2434 queue when limited by number of connections, total or per-host, libcurl
2435 would previously very aggressively retry *ALL* pending transfers to get
2436 them transferring. That was very time consuming.
2437
2438 By reducing the aggressiveness in how pending are being retried, we
2439 waste MUCH less time on putting transfers back into pending again.
2440
2441 Some test cases got a factor 30(!) speed improvement with this change.
2442
2443 Reported-by: Cyril B
2444 Fixes #2369
2445 Closes #2383
2446
2447- pause: when changing pause state, update socket state
2448
2449 Especially unpausing a transfer might have to move the socket back to the
2450 "currently used sockets" hash to get monitored. Otherwise it would never get
2451 any more data and get stuck. Easily triggered with pausing using the
2452 multi_socket API.
2453
2454 Reported-by: Philip Prindeville
2455 Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
2456 Fixes #2393
2457 Closes #2391
2458
2459- [Philip Prindeville brought this change]
2460
2461 examples/hiperfifo.c: improved
2462
2463 * use member struct event’s instead of pointers to alloc’d struct
2464 events
2465
2466 * simplify the cases for the mcode_or_die() function via macros;
2467
2468 * make multi_timer_cb() actually do what the block comment says it
2469 should;
2470
2471 * accept a “stop” command on the FIFO to shut down the service;
2472
2473 * use cleaner notation for unused variables than the (void) hack;
2474
2475 * allow following redirections (304’s);
2476
2477- rate-limit: use three second window to better handle high speeds
2478
2479 Due to very frequent updates of the rate limit "window", it could
2480 attempt to rate limit within the same milliseconds and that then made
2481 the calculations wrong, leading to it not behaving correctly on very
2482 fast transfers.
2483
2484 This new logic updates the rate limit "window" to be no shorter than the
2485 last three seconds and only updating the timestamps for this when
2486 switching between the states TOOFAST/PERFORM.
2487
2488 Reported-by: 刘佩东
2489 Fixes #2386
2490 Closes #2388
2491
2492- [luz.paz brought this change]
2493
2494 cleanup: misc typos in strings and comments
2495
2496 Found via `codespell`
2497
2498 Closes #2389
2499
2500- RELEASE-NOTES: toward 7.60.0
2501
2502- [Kobi Gurkan brought this change]
2503
2504 http2: fixes typo
2505
2506 Closes #2387
2507
2508- user-agent.d:: mention --proxy-header as well
2509
2510 Bug: https://github.com/curl/curl/issues/2381
2511
2512- transfer: make HTTP without headers count correct body size
2513
2514 This is what "HTTP/0.9" basically looks like.
2515
2516 Reported on IRC
2517
2518 Closes #2382
2519
2520- test1208: marked flaky
2521
2522 It fails somewhere between every 3rd to 10th travis-CI run
2523
2524- SECURITY-PROCESS: mention how we write/add advisories
2525
2526- [dasimx brought this change]
2527
2528 FTP: fix typo in recursive callback detection for seeking
2529
2530 Fixes #2380
2531
Elliott Hughescac39802018-04-27 16:19:43 -07002532Version 7.59.0 (13 Mar 2018)
2533
2534Daniel Stenberg (13 Mar 2018)
2535- release: 7.59.0
2536
2537Kamil Dudka (13 Mar 2018)
2538- tests/.../spnego.py: fix identifier typo
2539
2540 Detected by Coverity Analysis:
2541
2542 Error: IDENTIFIER_TYPO:
2543 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
2544 * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
2545 * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
2546 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
2547 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
2548 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
2549 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
2550
2551 Closes #2379
2552
2553Daniel Stenberg (13 Mar 2018)
2554- CURLOPT_COOKIEFILE.3: "-" as file name means stdin
2555
2556 Reported-by: Aron Bergman
2557 Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
2558
2559 [ci skip]
2560
2561- Revert "hostip: fix compiler warning: 'variable set but not used'"
2562
2563 This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
2564
2565 The assignment really needs to be there or we risk working with an
2566 uninitialized pointer.
2567
2568Michael Kaufmann (12 Mar 2018)
2569- limit-rate: fix compiler warning
2570
2571 follow-up to 72a0f62
2572
2573Viktor Szakats (12 Mar 2018)
2574- checksrc.pl: add -i and -m options
2575
2576 To sync it with changes made for the libssh2 project.
2577 Also cleanup some whitespace.
2578
2579- curl-openssl.m4: fix spelling [ci skip]
2580
2581- FAQ: fix a broken URL [ci skip]
2582
2583Daniel Stenberg (12 Mar 2018)
2584- http2: mark the connection for close on GOAWAY
2585
2586 ... don't consider it an error!
2587
2588 Assisted-by: Jay Satiro
2589 Reported-by: Łukasz Domeradzki
2590 Fixes #2365
2591 Closes #2375
2592
2593- credits: Viktor prefers without accent
2594
2595- openldap: white space changes, fixed up the copyright years
2596
2597- openldap: check ldap_get_attribute_ber() results for NULL before using
2598
2599 CVE-2018-1000121
2600 Reported-by: Dario Weisser
2601 Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
2602
2603- FTP: reject path components with control codes
2604
2605 Refuse to operate when given path components featuring byte values lower
2606 than 32.
2607
2608 Previously, inserting a %00 sequence early in the directory part when
2609 using the 'singlecwd' ftp method could make curl write a zero byte
2610 outside of the allocated buffer.
2611
2612 Test case 340 verifies.
2613
2614 CVE-2018-1000120
2615 Reported-by: Duy Phan Thanh
2616 Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
2617
2618- readwrite: make sure excess reads don't go beyond buffer end
2619
2620 CVE-2018-1000122
2621 Bug: https://curl.haxx.se/docs/adv_2018-b047.html
2622
2623 Detected by OSS-fuzz
2624
2625- BUGS: updated link to security process
2626
2627- limit-rate: kick in even before "limit" data has been received
2628
2629 ... and make sure to avoid integer overflows with really large values.
2630
2631 Reported-by: 刘佩东
2632 Fixes #2371
2633 Closes #2373
2634
2635- docs/SECURITY.md -> docs/SECURITY-PROCESS.md
2636
2637- SECURITY.md: call it the security process
2638
2639Michael Kaufmann (11 Mar 2018)
2640- Curl_range: fix FTP-only and FILE-only builds
2641
2642 follow-up to e04417d
2643
2644- hostip: fix compiler warning: 'variable set but not used'
2645
2646Daniel Stenberg (11 Mar 2018)
2647- HTTP: allow "header;" to replace an internal header with a blank one
2648
2649 Reported-by: Michael Kaufmann
2650 Fixes #2357
2651 Closes #2362
2652
2653- http2: verbose output new MAX_CONCURRENT_STREAMS values
2654
2655 ... as it is interesting for many users.
2656
2657- SECURITY: distros' max embargo time is 14 days now
2658
2659Patrick Monnerat (8 Mar 2018)
2660- curl tool: accept --compressed also if Brotli is enabled and zlib is not.
2661
2662Daniel Stenberg (5 Mar 2018)
2663- THANKS + mailmap: remove duplicates, fixup full names
2664
2665- [sergii.kavunenko brought this change]
2666
2667 WolfSSL: adding TLSv1.3
2668
2669 Closes #2349
2670
2671- RELEASE-NOTES/THANKS: synced with cc1d4c505
2672
2673- [Richard Alcock brought this change]
2674
2675 winbuild: prefer documented zlib library names
2676
2677 Check for existence of import and static libraries with documented names
2678 and use them if they do. Fallback to previous names.
2679
2680 According to
2681 https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
2682 Windows, the names of the import library is "zdll.lib" and static
2683 library is "zlib.lib".
2684
2685 closes #2354
2686
2687Marcel Raad (4 Mar 2018)
2688- krb5: use nondeprecated functions
2689
2690 gss_seal/gss_unseal have been deprecated in favor of
2691 gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
2692 version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
2693 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
2694 "GSS_Unwrap() (formerly GSS_Unseal())".
2695
2696 Use the nondeprecated functions to avoid deprecation warnings.
2697
2698 [1] https://tools.ietf.org/html/rfc2078
2699 [2] https://tools.ietf.org/html/rfc1964
2700
2701 Closes https://github.com/curl/curl/pull/2356
2702
2703Daniel Stenberg (4 Mar 2018)
2704- curl.1: mention how to add numerical IP addresses in NO_PROXY
2705
2706- CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
2707
2708- NO_PROXY: fix for IPv6 numericals in the URL
2709
2710 Added test 1265 that verifies.
2711
2712 Reported-by: steelman on github
2713 Fixes #2353
2714 Closes #2355
2715
2716- build: get CFLAGS (including -werror) used for examples and tests
2717
2718 ... so that the CI and more detects compiler warnings/errors properly!
2719
2720 Closes #2337
2721
2722Marcel Raad (3 Mar 2018)
2723- curl_ctype: fix macro redefinition warnings
2724
2725 On MinGW and Cygwin, GCC and clang have been complaining about macro
2726 redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
2727 by undefining the macros before redefining them as suggested in
2728 https://github.com/curl/curl/pull/2269.
2729
2730 Suggested-by: Daniel Stenberg
2731
2732Dan Fandrich (2 Mar 2018)
2733- unit1307: proper cleanup on OOM to fix torture tests
2734
2735Marcel Raad (28 Feb 2018)
2736- unit1309: fix warning on Windows x64
2737
2738 When targeting x64, MinGW-w64 complains about conversions between
2739 32-bit long and 64-bit pointers. Fix this by reusing the
2740 GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
2741 from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
2742 CURLX_INTEGER_TO_POINTER_CAST.
2743
2744 Closes https://github.com/curl/curl/pull/2341
2745
2746- travis: update compiler versions
2747
2748 Update clang to version 3.9 and GCC to version 6.
2749
2750 Closes https://github.com/curl/curl/pull/2345
2751
2752Daniel Stenberg (26 Feb 2018)
2753- docs/MANUAL: formfind.pl is not accessible on the site anymore
2754
2755 Fixes #2342
2756
2757Jay Satiro (24 Feb 2018)
2758- curl-openssl.m4: Fix version check for OpenSSL 1.1.1
2759
2760 - Add OpenSSL 1.1.1 to the header/library version lists.
2761
2762 - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
2763 which was added in that version.
2764
2765 Prior to this change an erroneous header/library mismatch was caused by
2766 lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
2767
2768Viktor Szakats (23 Feb 2018)
2769- lib655: silence compiler warning
2770
2771 Closes https://github.com/curl/curl/pull/2335
2772
2773- spelling fixes
2774
2775 Detected using the `codespell` tool.
2776
2777 Also contains one URL protocol upgrade.
2778
2779 Closes https://github.com/curl/curl/pull/2334
2780
2781Daniel Stenberg (24 Feb 2018)
2782- projects/README: remove reference to dead IDN link/package
2783
2784 Reported-by: Stefan Kanthak and Rod Widdowson
2785
2786 Fixes #2325
2787
2788Jay Satiro (23 Feb 2018)
2789- [Rod Widdowson brought this change]
2790
2791 winbuild: Use macros for the names of some build utilities
2792
2793 - Add macros to the top of the makefile for rc and mt utilities so that
2794 it is easier to change their locations.
2795
2796 Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
2797 Reported-by: Stefan Kanthak
2798
2799 Closes https://github.com/curl/curl/issues/2329
2800
2801Daniel Stenberg (23 Feb 2018)
2802- TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
2803
2804- curl_share_setopt.3: connection cache is shared within multi handles
2805
2806Jay Satiro (22 Feb 2018)
2807- [Rod Widdowson brought this change]
2808
2809 winbuild: Use CALL to run batch scripts
2810
2811 Co-authored-by: Stefan Kanthak
2812
2813 Closes https://github.com/curl/curl/issues/2330
2814 Closes https://github.com/curl/curl/pull/2331
2815
2816Patrick Monnerat (22 Feb 2018)
2817- os400: add curl_resolver_start_callback type to ILE/RPG binding
2818
2819Daniel Stenberg (22 Feb 2018)
2820- form.d: rephrased somewhat, added two example command lines
2821
2822Jay Satiro (21 Feb 2018)
2823- [Francisco Sedano brought this change]
2824
2825 url: Add option CURLOPT_RESOLVER_START_FUNCTION
2826
2827 - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
2828 will be called every time before a new resolve request is started
2829 (ie before a host is resolved) with a pointer to backend-specific
2830 resolver data. Currently this is only useful for ares.
2831
2832 - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
2833 pass to the resolver start callback.
2834
2835 Closes https://github.com/curl/curl/pull/2311
2836
2837- lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
2838
2839 - In keeping with the naming of our other connect timeout options rename
2840 CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
2841
2842 This change adds the _MS suffix since the option expects milliseconds.
2843 This is more intuitive for our users since other connect timeout options
2844 that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
2845 CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
2846
2847 The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
2848
2849 Follow-up to 2427d94 which added the lib and tool option yesterday.
2850
2851 Ref: https://github.com/curl/curl/pull/2260
2852
2853Patrick Monnerat (21 Feb 2018)
2854- sasl: prefer PLAIN mechanism over LOGIN
2855
2856 SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
2857 PLAIN should be used instead if available.
2858
2859Daniel Stenberg (21 Feb 2018)
2860- RELEASE-NOTES: synced with 2427d94c6
2861
2862Jay Satiro (20 Feb 2018)
2863- [Anders Bakken brought this change]
2864
2865 url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
2866
2867 - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
2868 eyeball timeout value.
2869
2870 - Add new optval macro CURL_HET_DEFAULT to represent the default happy
2871 eyeballs timeout value (currently 200 ms).
2872
2873 - Add new tool option --happy-eyeballs-timeout-ms to expose
2874 CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
2875 other -timeout options in the tool expect seconds not milliseconds.
2876
2877 Closes https://github.com/curl/curl/pull/2260
2878
2879- hostip: fix 'potentially uninitialized variable' warning
2880
2881 Follow-up to 50d1b33.
2882
2883 Caught by AppVeyor.
2884
2885Daniel Stenberg (20 Feb 2018)
2886- TODO: warning if curl version is not in sync with libcurl version
2887
2888Jay Satiro (20 Feb 2018)
2889- [Anders Bakken brought this change]
2890
2891 CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
2892
2893 This enables users to preresolve but still take advantage of happy
2894 eyeballs and trying multiple addresses if some are not connecting.
2895
2896 Ref: https://github.com/curl/curl/pull/2260
2897
2898Daniel Stenberg (20 Feb 2018)
2899- [Sergio Borghese brought this change]
2900
2901 examples/sftpuploadresume: resume upload via CURLOPT_APPEND
2902
2903 URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
2904
2905- curl --version: show PSL if the run-time lib has it enabled
2906
2907 ... not of the #define was set at build-time!
2908
2909- TODO: "Support in-memory certs/ca certs/keys"
2910
2911 removed SSLKEYLOGFILE support (fixed)
2912
2913 removed "consider SSL patches" (outdated)
2914
2915 Closes #2310
2916
2917- CURLOPT_HEADER.3: clarify problems with different data sizes
2918
2919- test1556: verify >16KB headers to the header callback
2920
2921- header callback: don't chop headers into smaller pieces
2922
2923 Reported-by: Guido Berhoerster
2924 Fixes #2314
2925 Closes #2316
2926
2927- test1154: verify that long HTTP headers get rejected
2928
2929- http: fix the max header length detection logic
2930
2931 Previously, it would only check for max length if the existing alloc
2932 buffer was to small to fit it, which often would make the header still
2933 get used.
2934
2935 Reported-by: Guido Berhoerster
2936 Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
2937
2938 Closes #2315
2939
2940- CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
2941
2942 Reported-by: Erik Johansson
2943 Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
2944
2945- CURLOPT_HEADERFUNCTION.3: mention folded headers
2946
2947- TODO: 1.1 Option to refuse usernames in URLs
2948
2949 Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
2950
2951- TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
2952
2953- ssh: add two missing state names
2954
2955 The list of state names (used in debug builds) was out of sync in
2956 relation to the list of states (used in all builds).
2957
2958 I now added an assert to make sure the sizes of the two lists match, to
2959 aid in detecting this mistake better in the future.
2960
2961 Regression since c92d2e14cf, shipped in 7.58.0.
2962
2963 Reported-by: Somnath Kundu
2964
2965 Fixes #2312
2966 Closes #2313
2967
2968- Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
2969
2970 This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
2971
2972 Reported-by: Jay Satiro
2973
2974Jay Satiro (15 Feb 2018)
2975- non-ascii: fix implicit declaration warning
2976
2977 Follow-up to b46cfbc.
2978
2979 Caught by Travis CI.
2980
2981Daniel Stenberg (15 Feb 2018)
2982- travis: add build with iconv enabled
2983
2984 ... to verify it builds and works fine.
2985
2986 Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
2987
2988 Closes #1872
2989
2990- TODO: 18.18 retry on network is unreachable
2991
2992 Closes #1603
2993
2994- KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
2995
2996 Closes #1254
2997
2998Kamil Dudka (15 Feb 2018)
2999- nss: use PK11_CreateManagedGenericObject() if available
3000
3001 ... so that the memory allocated by applications using libcurl does not
3002 grow per each TLS connection.
3003
3004 Bug: https://bugzilla.redhat.com/1510247
3005
3006 Closes #2297
3007
3008Daniel Stenberg (15 Feb 2018)
3009- [Björn Stenberg brought this change]
3010
3011 TODO fixed: Detect when called from within callbacks
3012
3013 Closes #2302
3014
3015- BINDINGS: fix curb link (and remove ruby-curl-multi)
3016
3017 Reported-by: Klaus Stein
3018
3019- curl_gssapi: make sure this file too uses our *printf()
3020
3021- libcurl-security.3: separate file:// section
3022
3023 ... just to make it more apparent. Even if it repeats
3024 some pieces of information.
3025
3026- libcurl-security.3: the http://192.168.0.1/my_router_config case
3027
3028 Mentioned-By: Rich Moore
3029
3030- libcurl-security.3: mention the URL standards problems too
3031
3032- libcurl-security.3: split out from libcurl-tutorial.3
3033
3034 To make more accessible.
3035
3036 Merged in some new language from "URLs are dangerous things" as discussed on
3037 the mailing list a few days ago:
3038
3039 Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
3040
3041- RELEASE-NOTES: synced with e551910f8
3042
3043Patrick Monnerat (13 Feb 2018)
3044- tests: new tests for http raw mode
3045
3046 Test 319 checks proper raw mode data with non-chunked gzip
3047 transfer-encoded server data.
3048 Test 326 checks raw mode with chunked server data.
3049
3050 Bug: #2303
3051 Closes #2308
3052
3053Kamil Dudka (12 Feb 2018)
3054- tlsauthtype.d: works only if libcurl is built with TLS-SRP support
3055
3056 Bug: https://bugzilla.redhat.com/1542256
3057
3058 Closes #2306
3059
3060Patrick Monnerat (12 Feb 2018)
3061- smtp: fix processing of initial dot in data
3062
3063 RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
3064 should be taken into account when chasing the <CRLF>.<CRLF> end marker.
3065 Thus a leading dot character in data is also subject to escaping.
3066
3067 Tests 911 and test server are adapted to this situation.
3068 New tests 951 and 952 check proper handling of initial dot in data.
3069
3070 Closes #2304
3071
3072Daniel Stenberg (12 Feb 2018)
3073- sha256: avoid redefine
3074
3075- [Douglas Mencken brought this change]
3076
3077 sha256: build with OpenSSL < 0.9.8 too
3078
3079 support for SHA-2 was introduced in OpenSSL 0.9.8
3080
3081 Closes #2305
3082
3083- [Bruno Grasselli brought this change]
3084
3085 README: language fix
3086
3087 s/off/from
3088
3089 Closes #2300
3090
3091Patrick Monnerat (12 Feb 2018)
3092- http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
3093
3094 Bug: #2303
3095 Reported-By: Henry Roeland
3096
3097Daniel Stenberg (9 Feb 2018)
3098- get_posix_time: only check for overflows if they can happen!
3099
3100Michael Kaufmann (9 Feb 2018)
3101- schannel: fix "no previous prototype" compiler warning
3102
3103Jay Satiro (9 Feb 2018)
3104- [Mohammad AlSaleh brought this change]
3105
3106 content_encoding: Add "none" alias to "identity"
3107
3108 Some servers return a "content-encoding" header with a non-standard
3109 "none" value.
3110
3111 Add "none" as an alias to "identity" as a work-around, to avoid
3112 unrecognised content encoding type errors.
3113
3114 Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
3115
3116 Closes https://github.com/curl/curl/pull/2298
3117
3118Steve Holme (8 Feb 2018)
3119- build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
3120
3121- build-openssl.bat: Fixed incorrect move if destination build folder exists
3122
3123Michael Kaufmann (8 Feb 2018)
3124- schannel: fix compiler warnings
3125
3126 Closes #2296
3127
3128Steve Holme (7 Feb 2018)
3129- curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
3130
3131 Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
3132 Added the necessary include file to curl_addrinfo.c.
3133
3134 Note: The SDK (which is considered beta) has to be installed, VS 2017
3135 project file has to be re-targeted for Windows 10.0.17061 and #define
3136 enabled in config-win32.h.
3137
3138Patrick Monnerat (7 Feb 2018)
3139- fnmatch: optimize processing of consecutive *s and ?s pattern characters
3140
3141 Reported-By: Daniel Stenberg
3142 Fixes #2291
3143 Closes #2293
3144
3145Steve Holme (6 Feb 2018)
3146- build-openssl.bat/build-wolfssl.bat: Build platform is optional
3147
3148 Whilst the compiler parameter is mandatory, platform is optional as it
3149 is automatically calculated by the :configure section.
3150
3151 This partially reverts commit 6d62d2c55d.
3152
3153Daniel Stenberg (6 Feb 2018)
3154- [Patrick Schlangen brought this change]
3155
3156 openssl: Don't add verify locations when verifypeer==0
3157
3158 When peer verification is disabled, calling
3159 SSL_CTX_load_verify_locations is not necessary. Only call it when
3160 verification is enabled to save resources and increase performance.
3161
3162 Closes #2290
3163
3164Steve Holme (5 Feb 2018)
3165- build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
3166
3167 ...and not just the Community Edition.
3168
3169- build-openssl.bat: Extend VC15 support to include Enterprise and Professional
3170
3171 ...and not just the Community Edition.
3172
3173Michael Kaufmann (5 Feb 2018)
3174- time-cond: fix reading the file modification time on Windows
3175
3176 On Windows, stat() may adjust the unix file time by a daylight saving time
3177 offset. Avoid this by calling GetFileTime() instead.
3178
3179 Fixes #2164
3180 Closes #2204
3181
3182Daniel Stenberg (5 Feb 2018)
3183- formdata: use the mime-content type function
3184
3185 Reduce code duplication by making Curl_mime_contenttype available and
3186 used by the formdata function. This also makes the formdata function
3187 recognize a set of more file extensions by default.
3188
3189 PR #2280 brought this to my attention.
3190
3191 Closes #2282
3192
3193- getdate: return -1 for out of range
3194
3195 ...as that's how the function is documented to work.
3196
3197 Reported-by: Michael Kaufmann
3198 Bug found in an autobuild with 32 bit time_t
3199
3200 Closes #2278
3201
3202- [Ben Greear brought this change]
3203
3204 build: fix termios issue on android cross-compile
3205
3206 Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
3207 Signed-off-by: Ben Greear <greearb@candelatech.com>
3208
3209- time_t-fixes: remove typecasts to 'long' for info.filetime
3210
3211 They're now wrong.
3212
3213 Reported-by: Michael Kaufmann
3214
3215 Closes #2277
3216
3217- curl_setup: move the precautionary define of SIZEOF_TIME_T
3218
3219 ... up to before it may be used for the TIME_T_MAX/MIN logic.
3220
3221 Reported-by: Michael Kaufmann
3222
3223- parsedate: s/#if/#ifdef
3224
3225 Reported-by: Michael Kaufmann
3226 Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
3227
3228Patrick Monnerat (31 Jan 2018)
3229- fnmatch: pattern syntax can no longer fail
3230
3231 Whenever an expected pattern syntax rule cannot be matched, the
3232 character starting the rule loses its special meaning and the parsing
3233 is resumed:
3234 - backslash at the end of pattern string matches itself.
3235 - Error in [:keyword:] results in set containing :\[dekorwy.
3236
3237 Unit test 1307 updated for this new situation.
3238
3239 Closes #2273
3240
3241- fnmatch: accept an alphanum to be followed by a non-alphanum in char set
3242
3243 Also be more tolerant about set pattern syntax.
3244 Update unit test 1307 accordingly.
3245
3246 Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
3247
3248- fnmatch: do not match the empty string with a character set
3249
3250Jay Satiro (30 Jan 2018)
3251- build: fix windows build methods for curl_ctype.c
3252
3253 - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
3254 curlx files since they are required by both src and lib.
3255
3256 Follow-up to 4272a0b which added curl_ctype.
3257
3258Daniel Stenberg (30 Jan 2018)
3259- progress-bar.d: update to match implementation
3260
3261 ... since commit 993dd5651a6
3262
3263 Reported-by: Martin Dreher
3264 Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
3265
3266 Closes #2271
3267
3268- http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
3269
3270 ... instead of doing it unconditionally in debug builds. It cluttered up
3271 the output a little too much.
3272
3273- [Max Dymond brought this change]
3274
3275 file: Check the return code from Curl_range and bail out on error
3276
3277- [Max Dymond brought this change]
3278
3279 Curl_range: add check to ensure "from <= to"
3280
3281- [Max Dymond brought this change]
3282
3283 Curl_range: commonize FTP and FILE range handling
3284
3285 Closes #2205
3286
3287- RELEASE-NOTES: synced with 811beab9f
3288
3289- curlver: next release will be 7.59.0
3290
3291- [Michał Janiszewski brought this change]
3292
3293 curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
3294
3295 Closes #2275
3296
3297- time: support > year 2038 time stamps for system with 32bit long
3298
3299 ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
3300 CURLINFO_FILETIME_T.
3301
3302 Fixes #2238
3303 Closes #2264
3304
3305- curl_easy_reset: clear digest auth state
3306
3307 Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
3308 Reported-by: Ruurd Beerstra
3309 Fixes #2255
3310 Closes #2272
3311
3312- [Adam Marcionek brought this change]
3313
3314 winbuild: make linker generate proper PDB
3315
3316 Link.exe requires /DEBUG to properly generate a full pdb file on release
3317 builds.
3318
3319 Closes #2274
3320
3321- curl: add --proxy-pinnedpubkey
3322
3323 To verify a proxy's public key. For when using HTTPS proxies.
3324
3325 Fixes #2192
3326 Closes #2268
3327
3328- configure: set PATH_SEPARATOR to colon for PATH w/o separator
3329
3330 The logic tries to figure out what the path separator in the $PATH
3331 variable is, but if there's only one directory in the $PATH it
3332 fails. This change make configure *guess* on colon instead of erroring
3333 out, simply because that is probably the more common character.
3334
3335 PATH_SEPARATOR can always be set by the user to override the guessing.
3336
3337 (tricky bug to reproduce, as in my case for example the configure script
3338 requires binaries in more than one directory so passing in a PATH with a
3339 single dir fails.)
3340
3341 Reported-by: Earnestly on github
3342 Fixes #2202
3343 Closes #2265
3344
3345- curl_ctype: private is*() type macros and functions
3346
3347 ... since the libc provided one are locale dependent in a way we don't
3348 want. Also, the "native" isalnum() (for example) works differently on
3349 different platforms which caused test 1307 failures on macos only.
3350
3351 Closes #2269
3352
3353Marcel Raad (29 Jan 2018)
3354- build: open VC15 projects with VS 2017
3355
3356 Previously, they were opened with Visual Studio 2015 by default, which
3357 cannot build them.
3358
3359Daniel Stenberg (29 Jan 2018)
3360- RELEASE-NOTES: synced with 094647fca
3361
3362- TODO: UTF-8 filenames in Content-Disposition
3363
3364 Closes #1888
3365
3366- KNOWN_BUGS: DICT responses show the underlying protocol
3367
3368 Closes #1809
3369
3370Jay Satiro (27 Jan 2018)
3371- [Alessandro Ghedini brought this change]
3372
3373 docs: fix typos in man pages
3374
3375 Closes https://github.com/curl/curl/pull/2266
3376
3377Patrick Monnerat (26 Jan 2018)
3378- lib555: drop text conversion and encode data as ascii codes
3379
3380 If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
3381 giving a result that is different from what is expected.
3382 This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
3383 to upload in ascii.
3384
3385 Bug: https://github.com/curl/curl/pull/1872
3386
3387Daniel Stenberg (26 Jan 2018)
3388- lib517: make variable static to avoid compiler warning
3389
3390 ... with clang on macos
3391
3392Patrick Monnerat (26 Jan 2018)
3393- lib544: sync ascii code data with textual data
3394
3395 Data mismatch caused test 545 to fail when character encoding
3396 conversion is enabled.
3397
3398 Bug: https://github.com/curl/curl/pull/1872
3399
3400Daniel Stenberg (25 Jan 2018)
3401- [Travis Burtrum brought this change]
3402
3403 GSKit: restore pinnedpubkey functionality
3404
3405 inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
3406
3407 Closes #2263
3408
3409- [Dair Grant brought this change]
3410
3411 darwinssl: Don't import client certificates into Keychain on macOS
3412
3413 Closes #2085
3414
3415- configure: fix the check for unsigned time_t
3416
3417 Assign the time_t variable negative value and then check if it is
3418 greater than zero, which will evaluate true for unsigned time_t but
3419 false for signed time_t.
3420
3421- parsedate: fix date parsing for systems with 32 bit long
3422
3423 Make curl_getdate() handle dates before 1970 as well (returning negative
3424 values).
3425
3426 Make test 517 test dates for 64 bit time_t.
3427
3428 This fixes bug (3) mentioned in #2238
3429
3430 Closes #2250
3431
3432- [McDonough, Tim brought this change]
3433
3434 openssl: fix pinned public key build error in FIPS mode
3435
3436 Here is a version that should work with all versions of openssl 0.9.7
3437 through 1.1.0.
3438
3439 Links to the docs:
3440 https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
3441 https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
3442
3443 At the very bottom of the 1.1.0 documentation there is a history section
3444 that states, " stack allocated EVP_MD_CTXs are no longer supported."
3445
3446 If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
3447 simple mapping can be used as described here:
3448 https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
3449
3450 Closes #2258
3451
3452- [Travis Burtrum brought this change]
3453
3454 SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
3455
3456- [Travis Burtrum brought this change]
3457
3458 SChannel/WinSSL: Implement public key pinning
3459
3460 Closes #1429
3461
3462- bump: towards 7.58.1
3463
3464- cookies: remove verbose "cookie size:" output
3465
3466 It was once used for some debugging/verifying logic but should never have
3467 ended up in git!
3468
3469- TODO: hardcode the "localhost" addresses
3470
3471- TODO: CURL_REFUSE_CLEARTEXT
3472
3473 An idea that popped up in discussions on twitter.
3474
3475- progress-bar: don't use stderr explicitly, use bar->out
3476
3477 Reported-By: Gisle Vanem
3478 Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
3479
3480GitHub (24 Jan 2018)
3481- [Gisle Vanem brought this change]
3482
3483 Fixes for MSDOS etc.
3484
3485 djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
3486 But djgpp seems the only choice for MSDOS anyway.
3487
3488 PellesC do have a 'F_OK' defined in it's <unistd.h>.
3489
3490 Update year in Copyright.
3491
3492- [Gisle Vanem brought this change]
3493
3494 Fix small typo.
3495
Elliott Hughes0128fe42018-02-27 14:57:55 -08003496Version 7.58.0 (23 Jan 2018)
3497
3498Daniel Stenberg (23 Jan 2018)
3499- RELEASE: 7.58.0
3500
3501- [Gisle Vanem brought this change]
3502
3503 progress-bar: get screen width on windows
3504
3505- test1454: --connect-to with IPv6 address w/o IPv6 support!
3506
3507- CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
3508
3509 Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
3510 Reported-by: John Hascall
3511
3512 Closes #2257
3513
3514- docs: fix man page syntax to make test 1140 OK again
3515
3516- http: prevent custom Authorization headers in redirects
3517
3518 ... unless CURLOPT_UNRESTRICTED_AUTH is set to allow them. This matches how
3519 curl already handles Authorization headers created internally.
3520
3521 Note: this changes behavior slightly, for the sake of reducing mistakes.
3522
3523 Added test 317 and 318 to verify.
3524
3525 Reported-by: Craig de Stigter
3526 Bug: https://curl.haxx.se/docs/adv_2018-b3bf.html
3527
3528- curl: progress bar refresh, get width using ioctl()
3529
3530 Get screen width from the environment variable COLUMNS first, if set. If
3531 not, use ioctl(). If nether works, assume 79.
3532
3533 Closes #2242
3534
3535 The "refresh" is for the -# output when no total transfer size is
3536 known. It will now only use a single updated line even for this case:
3537
3538 The "-=O=-" ship moves when data is transferred. The four flying
3539 "hashes" move (on a sine wave) on each refresh, independent of data.
3540
3541- RELEASE-NOTES: synced with bb0ffcc36
3542
3543- libcurl-env.3: first take
3544
3545- TODO: two possible name resolver improvements
3546
3547- [Kartik Mahajan brought this change]
3548
3549 http2: don't close connection when single transfer is stopped
3550
3551 Fixes #2237
3552 Closes #2249
3553
3554- test558: fix for multissl builds
3555
3556 vtls.c:multissl_init() might do a curl_free() call so strip that out to
3557 make this work with more builds. We just want to verify that
3558 memorytracking works so skipping one line is no harm.
3559
3560- examples/url2file.c: add missing curl_global_cleanup() call
3561
3562 Reported-by: XhstormR on github
3563 Fixes #2245
3564
3565- [Michael Gmelin brought this change]
3566
3567 SSH: Fix state machine for ssh-agent authentication
3568
3569 In case an identity didn't match[0], the state machine would fail in
3570 state SSH_AUTH_AGENT instead of progressing to the next identity in
3571 ssh-agent. As a result, ssh-agent authentication only worked if the
3572 identity required happened to be the first added to ssh-agent.
3573
3574 This was introduced as part of commit c4eb10e2f06fbd6cc904f1d78e4, which
3575 stated that the "else" statement was required to prevent getting stuck
3576 in state SSH_AUTH_AGENT. Given the state machine's logic and libssh2's
3577 interface I couldn't see how this could happen or reproduce it and I
3578 also couldn't find a more detailed description of the problem which
3579 would explain a test case to reproduce the problem this was supposed to
3580 fix.
3581
3582 [0] libssh2_agent_userauth returning LIBSSH2_ERROR_AUTHENTICATION_FAILED
3583
3584 Closes #2248
3585
3586- openssl: fix potential memory leak in SSLKEYLOGFILE logic
3587
3588 Coverity CID 1427646.
3589
3590- openssl: fix the libressl build again
3591
3592 Follow-up to 84fcaa2e7. libressl does not have the API even if it says it is
3593 late OpenSSL version...
3594
3595 Fixes #2246
3596 Closes #2247
3597
3598 Reported-by: jungle-boogie on github
3599
3600- unit1307: test many wildcards too
3601
3602- curl_fnmatch: only allow 5 '*' sections in a single pattern
3603
3604 ... to avoid excessive recursive calls. The number 5 is totally
3605 arbitrary and could be modified if someone has a good motivation.
3606
3607- ftp-wildcard: fix matching an empty string with "*[^a]"
3608
3609 .... and avoid advancing the pointer to trigger an out of buffer read.
3610
3611 Detected by OSS-fuzz
3612 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5251
3613 Assisted-by: Max Dymond
3614
3615- SMB: fix numeric constant suffix and variable types
3616
3617 1. don't use "ULL" suffix since unsupported in older MSVC
3618 2. use curl_off_t instead of custom long long ifdefs
3619 3. make get_posix_time() not do unaligned data access
3620
3621 Fixes #2211
3622 Closes #2240
3623 Reported-by: Chester Liu
3624
3625- [rouzier brought this change]
3626
3627 CURLOPT_TCP_NODELAY.3: fix typo
3628
3629 Closes #2239
3630
3631- smtp/pop3/imap_get_message: decrease the data length too...
3632
3633 Follow-up commit to 615edc1f73 which was incomplete.
3634
3635 Assisted-by: Max Dymond
3636 Detected by OSS-fuzz
3637 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5206
3638
3639- openssl: enable SSLKEYLOGFILE support by default
3640
3641 Fixes #2210
3642 Closes #2236
3643
3644Patrick Monnerat (14 Jan 2018)
3645- mime: clone mime tree upon easy handle duplication.
3646
3647 A mime tree attached to an easy handle using CURLOPT_MIMEPOST is
3648 strongly bound to the handle: there is a pointer to the easy handle in
3649 each item of the mime tree and following the parent pointer list
3650 of mime items ends in a dummy part stored within the handle.
3651
3652 Because of this binding, a mime tree cannot be shared between different
3653 easy handles, thus it needs to be cloned upon easy handle duplication.
3654
3655 There is no way for the caller to get the duplicated mime tree
3656 handle: it is then set to be automatically destroyed upon freeing the
3657 new easy handle.
3658
3659 New test 654 checks proper mime structure duplication/release.
3660
3661 Add a warning note in curl_mime_data_cb() documentation about sharing
3662 user data between duplicated handles.
3663
3664 Closes #2235
3665
3666- docs: comment about CURLE_READ_ERROR returned by curl_mime_filedata
3667
3668Daniel Stenberg (13 Jan 2018)
3669- test395: HTTP with overflow Content-Length value
3670
3671- test394: verify abort of rubbish in Content-Length: value
3672
3673- test393: verify --max-filesize with excessive Content-Length
3674
3675- HTTP: bail out on negative Content-Length: values
3676
3677 ... and make the max filesize check trigger if the value is too big.
3678
3679 Updates test 178.
3680
3681 Reported-by: Brad Spencer
3682 Fixes #2212
3683 Closes #2223
3684
3685Marcel Raad (13 Jan 2018)
3686- [Dan Johnson brought this change]
3687
3688 configure.ac: append extra linker flags instead of prepending them.
3689
3690 Link order should list libraries after the libraries that use them,
3691 so when we're guessing that we might also need to add -ldl in order
3692 to use -lssl, we should add -ldl after -lssl.
3693
3694 Closes https://github.com/curl/curl/pull/2234
3695
3696Daniel Stenberg (13 Jan 2018)
3697- RELEASE-NOTES: synced with 6fa10c8fa
3698
3699Jay Satiro (13 Jan 2018)
3700- setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
3701
3702 Broken since f121575 (precedes 7.56.1).
3703
3704 Bug: https://github.com/curl/curl/issues/2225
3705 Reported-by: cmfrolick@users.noreply.github.com
3706
3707 Closes https://github.com/curl/curl/pull/2227
3708
3709Patrick Monnerat (13 Jan 2018)
3710- setopt: reintroduce non-static Curl_vsetopt() for OS400 support
3711
3712 This also upgrades ILE/RPG bindings with latest setopt options.
3713
3714 Reported-By: jonrumsey on github
3715 Fixes #2230
3716 Closes #2233
3717
3718Jay Satiro (11 Jan 2018)
3719- [Zhouyihai Ding brought this change]
3720
3721 http2: fix incorrect trailer buffer size
3722
3723 Prior to this change the stored byte count of each trailer was
3724 miscalculated and 1 less than required. It appears any trailer
3725 after the first that was passed to Curl_client_write would be truncated
3726 or corrupted as well as the size. Potentially the size of some
3727 subsequent trailer could be erroneously extracted from the contents of
3728 that trailer, and since that size is used by client write an
3729 out-of-bounds read could occur and cause a crash or be otherwise
3730 processed by client write.
3731
3732 The bug appears to have been born in 0761a51 (precedes 7.49.0).
3733
3734 Closes https://github.com/curl/curl/pull/2231
3735
3736- [Basuke Suzuki brought this change]
3737
3738 easy: fix connection ownership in curl_easy_pause
3739
3740 Before calling Curl_client_chop_write(), change the owner of connection
3741 to the current Curl_easy handle. This will fix the issue #2217.
3742
3743 Fixes https://github.com/curl/curl/issues/2217
3744 Closes https://github.com/curl/curl/pull/2221
3745
3746Daniel Stenberg (9 Jan 2018)
3747- [Dimitrios Apostolou brought this change]
3748
3749 system.h: Additionally check __LONG_MAX__ for defining curl_off_t
3750
3751 __SIZEOF_LONG__ was introduced in GCC 4.4, __LONG_MAX__ was introduced
3752 in GCC 3.3.
3753
3754 Closes #2216
3755
3756- COPYING: it's 2018!
3757
3758- progress: calculate transfer speed on milliseconds if possible
3759
3760 to increase accuracy for quick transfers
3761
3762 Fixes #2200
3763 Closes #2206
3764
3765Jay Satiro (7 Jan 2018)
3766- scripts: allow all perl scripts to be run directly
3767
3768 - Enable execute permission (chmod +x)
3769
3770 - Change interpreter to /usr/bin/env perl
3771
3772 Closes https://github.com/curl/curl/pull/2222
3773
3774- mail-rcpt.d: fix short-text description
3775
3776- build: remove HAVE_LIMITS_H check
3777
3778 .. because limits.h presence isn't optional, it's required by C89.
3779
3780 Ref: http://port70.net/~nsz/c/c89/c89-draft.html#2.2.4.2
3781
3782 Closes https://github.com/curl/curl/pull/2215
3783
3784- openssl: fix memory leak of SSLKEYLOGFILE filename
3785
3786 - Free the copy of SSLKEYLOGFILE env returned by curl_getenv during ossl
3787 initialization.
3788
3789 Caught by ASAN.
3790
3791- Revert "curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX"
3792
3793 This reverts commit c97648b55080343bb371522bf4233e94a2a13a99.
3794
3795 SIZEOF_LONG should not be checked in system.h since that macro is only
3796 defined when building libcurl.
3797
3798 Ref: https://github.com/curl/curl/pull/2186#issuecomment-354767080
3799 Ref: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
3800
3801Michael Kaufmann (30 Dec 2017)
3802- test1554: improve the error handling
3803
3804- test1554: add global initialization and cleanup
3805
3806Daniel Stenberg (29 Dec 2017)
3807- curl_version_info.3: call the argument 'age'
3808
3809 Reported-by: Pete Lomax
3810 Bug: https://curl.haxx.se/mail/lib-2017-12/0074.html
3811
3812Patrick Monnerat (27 Dec 2017)
3813- [Mikalai Ananenka brought this change]
3814
3815 brotli: data at the end of content can be lost
3816
3817 Decoding loop implementation did not concern the case when all
3818 received data is consumed by Brotli decoder and the size of decoded
3819 data internally hold by Brotli decoder is greater than CURL_MAX_WRITE_SIZE.
3820 For content with unencoded length greater than CURL_MAX_WRITE_SIZE this
3821 can result in the loss of data at the end of content.
3822
3823 Closes #2194
3824
3825Jay Satiro (26 Dec 2017)
3826- examples/cacertinmem: ignore cert-already-exists error
3827
3828 - Ignore X509_R_CERT_ALREADY_IN_HASH_TABLE errors in the CTX callback
3829 since it's possible the cert may have already been loaded by libcurl.
3830
3831 - Remove the EXAMPLE code in the CURLOPT_SSL_CTX_FUNCTION.3 doc.
3832 Instead have it direct the reader to this cacertinmem.c example.
3833
3834 - Fix the CA certificate to use the right CA for example.com, Digicert.
3835
3836 Bug: https://curl.haxx.se/mail/lib-2017-12/0057.html
3837 Reported-by: Thomas van Hesteren
3838
3839 Closes https://github.com/curl/curl/pull/2182
3840
3841- [Gisle Vanem brought this change]
3842
3843 tool_getparam: Support size modifiers for --max-filesize
3844
3845 - Move the size modifier detection code from limit-rate to its own
3846 function so that it can also be used with max-filesize.
3847
3848 Size modifiers are the suffixes such as G (gigabyte), M (megabyte) etc.
3849
3850 For example --max-filesize 1G
3851
3852 Ref: https://curl.haxx.se/mail/archive-2017-12/0000.html
3853
3854 Closes https://github.com/curl/curl/pull/2179
3855
3856Steve Holme (22 Dec 2017)
3857- build: Fixed incorrect script termination from commit ad1dc10e61
3858
3859- Makefile.vc: Added our standard copyright header
3860
3861- winbuild: Added support for VC15
3862
3863- build: Added Visual Studio 2017 project files
3864
3865- build-wolfssl.bat: Added support for VC15
3866
3867- build-openssl.bat: Added support for VC15
3868
3869Jay Satiro (22 Dec 2017)
3870- [Dimitrios Apostolou brought this change]
3871
3872 curl/system.h: fix compilation with gcc on AIX PPC and IA64 HP-UX
3873
3874 Closes https://github.com/curl/curl/pull/2186
3875
3876- [Mattias Fornander brought this change]
3877
3878 examples/rtsp: fix error handling macros
3879
3880 Closes https://github.com/curl/curl/pull/2185
3881
3882Patrick Monnerat (20 Dec 2017)
3883- curl_easy_reset: release mime-related data.
3884
3885 Move curl_mime_initpart() and curl_mime_cleanpart() calls to lower-level
3886 functions dealing with UserDefined structure contents.
3887 This avoids memory leakages on curl-generated part mime headers.
3888 New test 2073 checks this using the cli tool --next option: it
3889 triggers a valgrind error if bug is present.
3890
3891 Bug: https://curl.haxx.se/mail/lib-2017-12/0060.html
3892 Reported-by: Martin Galvan
3893
3894- content_encoding: rework zlib_inflate
3895
3896 - When zlib version is < 1.2.0.4, process gzip trailer before considering
3897 extra data as an error.
3898 - Inflate with Z_BLOCK instead of Z_SYNC_FLUSH to maximize correct data
3899 and minimize corrupt data output.
3900 - Do not try to restart deflate decompression in raw mode if output has
3901 started or if the leading data is not available anymore.
3902 - New test 232 checks inflating raw-deflated content.
3903
3904 Closes #2068
3905
3906- brotli: allow compiling with version 0.6.0.
3907
3908 Some error codes were not yet defined in brotli 0.6.0: do not issue code
3909 for them in this case.
3910
3911Daniel Stenberg (13 Dec 2017)
3912- CURLOPT_READFUNCTION.3: refer to argument with correct name
3913
3914 Bug: #2175
3915
3916 [ci skip]
3917
3918- rand: add a clang-analyzer work-around
3919
3920 scan-build would warn on a potential access of an uninitialized
3921 buffer. I deem it a false positive and had to add this somewhat ugly
3922 work-around to silence it.
3923
3924- krb5: fix a potential access of uninitialized memory
3925
3926 A scan-build warning.
3927
3928- conncache: fix a return code [regression]
3929
3930 This broke in 07cb27c98e. Make sure to return 'result' properly. Pointed
3931 out by scan-build!
3932
3933- curl: support >256 bytes warning messsages
3934
3935 Bug: #2174
3936
3937Michael Kaufmann (12 Dec 2017)
3938- libssh: fix a syntax error in configure.ac
3939
3940 Follow-up to c92d2e1
3941
3942 Closes #2172
3943
3944Daniel Stenberg (12 Dec 2017)
3945- examples/smtp-mail.c: use separate defines for options and mail
3946
3947 ... to make it clearer that the options want address-only, while the
3948 headers in an email can also have the real name.
3949
3950 Assisted-by: Sean MacLennan
3951
3952- THANKS: added missing names
3953
3954 ... as I reran the contrithanks script after the mailmap name fixups.
3955
3956- mailmap: added/clarified several names
3957
3958- setopt: less *or equal* than INT_MAX/1000 should be fine
3959
3960 ... for the CURLOPT_TIMEOUT, CURLOPT_CONNECTTIMEOUT and
3961 CURLOPT_SERVER_RESPONSE_TIMEOUT range checks.
3962
3963 Reported-by: Dominik Hölzl
3964 Bug: https://curl.haxx.se/mail/lib-2017-12/0037.html
3965
3966 Closes #2173
3967
3968- [Dmitry Kostjuchenko brought this change]
3969
3970 vtls: replaced getenv() with curl_getenv()
3971
3972 Fixed undefined symbol of getenv() which does not exist when compiling
3973 for Windows 10 App (CURL_WINDOWS_APP). Replaced getenv() with
3974 curl_getenv() which is aware of getenv() absence when CURL_WINDOWS_APP
3975 is defined.
3976
3977 Closes #2171
3978
3979- RELEASE-NOTES: synced with 3b9ea70ee
3980
3981- TODO: Expose tried IP addresses that failed
3982
3983 Suggested-by: Rainer Canavan
3984
3985 Closes #2126
3986
3987- curl.1: mention http:// and https:// as valid proxy prefixes
3988
3989- curl.1: documented two missing valid exit codes
3990
3991- CURLOPT_DNS_LOCAL_IP4.3: fixed the seel also to not self-reference
3992
3993- Revert "curl: don't set CURLOPT_INTERLEAVEDATA"
3994
3995 This reverts commit 9ffad8eb1329bb35c8988115ac7ed85cf91ef955.
3996
3997 It was actually added rather recently in 8e8afa82cbb629 due to a crash
3998 that would otherwise happen in the RTSP code. As I don't think we've
3999 fixed that behavior yet, we better keep this work-around until we have
4000 fixed it better.
4001
4002Michael Kaufmann (10 Dec 2017)
4003- tests: mark data files as non-executable in git
4004
4005- tests: update .gitignore for libtests
4006
4007Daniel Stenberg (10 Dec 2017)
4008- multi_done: prune DNS cache
4009
4010 Prune the DNS cache immediately after the dns entry is unlocked in
4011 multi_done. Timed out entries will then get discarded in a more orderly
4012 fashion.
4013
4014 Test506 is updated
4015
4016 Reported-by: Oleg Pudeyev
4017
4018 Fixes #2169
4019 Closes #2170
4020
4021- mailmap: fixup two old git Author "aliases"
4022
4023Jay Satiro (10 Dec 2017)
4024- openssl: Disable file buffering for Win32 SSLKEYLOGFILE
4025
4026 Prior to this change SSLKEYLOGFILE used line buffering on WIN32 just
4027 like it does for other platforms. However, the Windows CRT does not
4028 actually support line buffering (_IOLBF) and will use full buffering
4029 (_IOFBF) instead. We can't use full buffering because multiple processes
4030 may be writing to the file and that could lead to corruption, and since
4031 full buffering is the only buffering available this commit disables
4032 buffering for Windows SSLKEYLOGFILE entirely (_IONBF).
4033
4034 Ref: https://github.com/curl/curl/pull/1346#issuecomment-350530901
4035
4036Daniel Stenberg (10 Dec 2017)
4037- RESOLVE: output verbose text when trying to set a duplicate name
4038
4039 ... to help users understand what is or isn't done!
4040
4041- CURLOPT_DNS_CACHE_TIMEOUT.3: see also CURLOPT_RESOLVE
4042
4043- [John DeHelian brought this change]
4044
4045 sftp: allow quoted commands to use relative paths
4046
4047 Closes #1900
4048
4049Jay Satiro (8 Dec 2017)
4050- [Richard Alcock brought this change]
4051
4052 CURLOPT_PRIVATE.3: fix grammar
4053
4054 - Change "never does nothing" double-negative to "never does anything".
4055
4056 Closes https://github.com/curl/curl/pull/2168
4057
4058Daniel Stenberg (8 Dec 2017)
4059- curl: remove __EMX__ #ifdefs
4060
4061 These are OS/2-specific things added to the code in the year 2000. They
4062 were always ugly. If there's any user left, they still don't need it
4063 done this way.
4064
4065 Closes #2166
4066
4067Jay Satiro (8 Dec 2017)
4068- openssl: improve data-pending check for https proxy
4069
4070 - Allow proxy_ssl to be checked for pending data even when connssl does
4071 not yet have an SSL handle.
4072
4073 This change is for posterity. Currently there doesn't seem to be a code
4074 path that will cause a pending data check when proxyssl could have
4075 pending data and the connssl handle doesn't yet exist [1].
4076
4077 [1]: Recall that an https proxy connection starts out in connssl but if
4078 the destination is also https then the proxy SSL backend data is moved
4079 from connssl to proxyssl, which means connssl handle is temporarily
4080 empty until an SSL handle for the destination can be created.
4081
4082 Ref: https://github.com/curl/curl/commit/f4a6238#commitcomment-24396542
4083
4084 Closes https://github.com/curl/curl/pull/1916
4085
4086Daniel Stenberg (8 Dec 2017)
4087- curl: don't set CURLOPT_INTERLEAVEDATA
4088
4089 That data is only ever used by the CURLOPT_INTERLEAVEFUNCTION callback
4090 and that option isn't set or used by the curl tool!
4091
4092 Updates the 9 tests that verify --libcurl
4093
4094 Closes #2167
4095
4096- curl.h: remove incorrect comment about ERRORBUFFER
4097
4098 ... error messages are _not_ sent to stderr if this is not set.
4099
4100- [Michael Felt brought this change]
4101
4102 configure: add AX_CODE_COVERAGE only if using gcc
4103
4104 Fixes #2076
4105 Closes #2125
4106
4107- curl: limit -# update frequency for unknown total size
4108
4109 Make it use a max 10Hz update frequency for this case as well. Return
4110 early if the "point" hasn't moved since last invoke.
4111
4112 Reported-by: Elliot Saba
4113
4114 Fixes #2158
4115 Closes #2163
4116
4117- BINDINGS: another PostgreSQL client
4118
4119 ...the former link is dead.
4120
4121 Reported-by: Frank Gevaerts
4122
4123- [Zachary Seguin brought this change]
4124
4125 CONNECT: keep close connection flag in http_connect_state struct
4126
4127 Fixes #2088
4128 Closes #2157
4129
4130- [Per Malmberg brought this change]
4131
4132 include: get netinet/in.h before linux/tcp.h
4133
4134 ... to allow build on older Linux dists (specifically CentOS 4.8 on gcc
4135 4.8.5)
4136
4137 Closes #2160
4138
4139- openldap: fix checksrc nits
4140
4141- [Stepan Broz brought this change]
4142
4143 openldap: add commented out debug possibilities
4144
4145 ... to aid debugging openldap library using its built-in debug messages.
4146
4147 Closes #2159
4148
4149- examples: move threaded-shared-conn.c to the "complicated" ones
4150
4151 ... due it relying on pthreads to link.
4152
4153- RELEASE-NOTES: synced with b261c44e8
4154
4155 ... and bump next release version to 7.58.0
4156
4157- [Jan Ehrhardt brought this change]
4158
4159 URL: tolerate backslash after drive letter for FILE:
4160
4161 ... as in "file://c:\some\path\curl.out"
4162
4163 Reviewed-by: Matthew Kerwin
4164 Closes #2154
4165
4166- [Randall S. Becker brought this change]
4167
4168 tests: added netinet/in6.h includes in test servers
4169
4170- [Randall S. Becker brought this change]
4171
4172 configure: check for netinet/in6.h
4173
4174 Needed by HPE NonStop NSE and NSX systems
4175
4176 Fixes #2146
4177 Closes #2155
4178
4179- curl-config: add --ssl-backends
4180
4181 Lists all SSL backends that were enabled at build-time.
4182
4183 Suggested-by: Oleg Pudeyev
4184 Fixes #2128
4185
4186- conncache: only allow multiplexing within same multi handle
4187
4188 Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing
4189 only get additional transfers added to them if the existing connection
4190 is held by the same multi or easy handle. libcurl does not support doing
4191 HTTP/2 streams in different threads using a shared connection.
4192
4193 Closes #2152
4194
4195- threaded-shared-conn.c: fixed typo in commenta
4196
4197- threaded-shared-conn.c: new example
4198
4199- conncache: fix several lock issues
4200
4201 If the lock is released before the dealings with the bundle is over, it may
4202 have changed by another thread in the mean time.
4203
4204 Fixes #2132
4205 Fixes #2151
4206 Closes #2139
4207
4208- libssh: remove dead code in sftp_qoute
4209
4210 ... by removing a superfluous NULL pointer check that also confuses
4211 Coverity.
4212
4213 Fixes #2143
4214 Closes #2153
4215
4216- sasl_getmesssage: make sure we have a long enough string to pass
4217
4218 For pop3/imap/smtp, added test 891 to somewhat verify the pop3
4219 case.
4220
4221 For this, I enhanced the pingpong test server to be able to send back
4222 responses with LF-only instead of always using CRLF.
4223
4224 Closes #2150
4225
4226- libssh2: remove dead code from SSH_SFTP_QUOTE
4227
4228 Figured out while reviewing code in the libssh backend. The pointer was
4229 checked for NULL after having been dereferenced, so we know it would
4230 always equal true or it would've crashed.
4231
4232 Pointed-out-by: Nikos Mavrogiannopoulos
4233
4234 Bug #2143
4235 Closes #2148
4236
4237- ssh-libssh.c: please checksrc
4238
4239Nikos Mavrogiannopoulos (4 Dec 2017)
4240- libssh: fixed dereference in statvfs access
4241
4242 The behavior is now equivalent to ssh.c when SSH_SFTP_QUOTE_STATVFS
4243 handling fails.
4244
4245 Fixes #2142
4246
4247Daniel Stenberg (4 Dec 2017)
4248- [Guitared brought this change]
4249
4250 RESOURCES: update spec names
4251
4252 Closes #2145
4253
4254Nikos Mavrogiannopoulos (3 Dec 2017)
4255- libssh: corrected use of sftp_statvfs() in SSH_SFTP_QUOTE_STATVFS
4256
4257 The previous code was incorrectly following the libssh2 error detection
4258 for libssh2_sftp_statvfs, which is not correct for libssh's sftp_statvfs.
4259
4260 Fixes #2142
4261
4262 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4263
4264- libssh: no need to call sftp_get_error as ssh_get_error is sufficient
4265
4266 Fixes #2141
4267
4268 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4269
4270Daniel Stenberg (2 Dec 2017)
4271- libssh: fix minor static code analyzer nits
4272
4273 - remove superfluous NULL check which otherwise tricks the static code
4274 analyzers to assume NULL pointer dereferences.
4275
4276 - fix fallthrough in switch()
4277
4278 - indent mistake
4279
4280- openssl: pkcs12 is supported by boringssl
4281
4282 Removes another #ifdef for BoringSSL
4283
4284 Pointed-out-by: David Benjamin
4285
4286 Closes #2134
4287
4288- [Jay Satiro brought this change]
4289
4290 travis: use pip2 instead of pip
4291
4292 .. since now mac osx image expects pip2 or pip3, and doesn't know pip:
4293
4294 0.01s$ pip install --user cpp-coveralls
4295 /Users/travis/.travis/job_stages: line 57: pip: command not found
4296
4297 Ref: https://github.com/travis-ci/travis-ci/issues/8829
4298
4299 Closes https://github.com/curl/curl/pull/2133
4300
4301- [Nikos Mavrogiannopoulos brought this change]
4302
4303 lib582: do not verify host for SFTP
4304
4305 This SFTP test fails with libssh back-end due to failure to verify
4306 the peer. Disable peer verification in the test as there seems to
4307 be the intention of the test.
4308
4309 Note that the libssh back-end automatically verifies the peer's
4310 host using the default known_hosts file.
4311
4312 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4313
4314- [Nikos Mavrogiannopoulos brought this change]
4315
4316 libssh: added SFTP support
4317
4318 The SFTP back-end supports asynchronous reading only, limited
4319 to 32-bit file length. Writing is synchronous with no other
4320 limitations.
4321
4322 This also brings keyboard-interactive authentication.
4323
4324 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4325
4326- [Nikos Mavrogiannopoulos brought this change]
4327
4328 symbols-in-versions: added new symbols with 7.56.3 version
4329
4330 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4331
4332- [Nikos Mavrogiannopoulos brought this change]
4333
4334 .travis.yml: added build --with-libssh
4335
4336 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
4337
4338- [Nikos Mavrogiannopoulos brought this change]
4339
4340 libssh2: return CURLE_UPLOAD_FAILED on failure to upload
4341
4342 This brings its in sync with the error code returned by the
4343 libssh backend.
4344
4345 Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
4346
4347- [Nikos Mavrogiannopoulos brought this change]
4348
4349 libssh2: send the correct CURLE error code on scp file not found
4350
4351 That also updates tests to expect the right error code
4352
4353 libssh2 back-end returns CURLE_SSH error if the remote file
4354 is not found. Expect instead CURLE_REMOTE_FILE_NOT_FOUND
4355 which is sent by the libssh backend.
4356
4357 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
4358
4359- [Nikos Mavrogiannopoulos brought this change]
4360
4361 Added support for libssh SSH SCP back-end
4362
4363 libssh is an alternative library to libssh2.
4364 https://www.libssh.org/
4365
4366 That patch set also introduces support for ECDSA
4367 ed25519 keys, as well as gssapi authentication.
4368
4369 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
4370
4371- RELEASE-NOTES: synced with af8cc7a69
4372
4373- curlver: towards 7.57.1
4374
4375- [W. Mark Kubacki brought this change]
4376
4377 lib: don't export all symbols, just everything curl_*
4378
4379 Absent any 'symbol map' or script to limit what gets exported, static
4380 linking of libraries previously resulted in a libcurl with curl's and
4381 those other symbols being (re-)exported.
4382
4383 This did not happen if 'versioned symbols' were enabled (which is not
4384 the default) because then a version script is employed.
4385
4386 This limits exports to everything starting in 'curl_*'., which is
4387 what "libcurl.vers" exports.
4388
4389 This avoids strange side-effects such as with mixing methods
4390 from system libraries and those erroneously offered by libcurl.
4391
4392 Closes #2127
4393
4394- [Johannes Schindelin brought this change]
4395
4396 SSL: Avoid magic allocation of SSL backend specific data
4397
4398 Originally, my idea was to allocate the two structures (or more
4399 precisely, the connectdata structure and the four SSL backend-specific
4400 strucutres required for ssl[0..1] and proxy_ssl[0..1]) in one go, so
4401 that they all could be free()d together.
4402
4403 However, getting the alignment right is tricky. Too tricky.
4404
4405 So let's just bite the bullet and allocate the SSL backend-specific
4406 data separately.
4407
4408 As a consequence, we now have to be very careful to release the memory
4409 allocated for the SSL backend-specific data whenever we release any
4410 connectdata.
4411
4412 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
4413
4414 Closes #2119
4415
4416- examples/xmlstream.c: don't switch off CURL_GLOBAL_SSL
4417
4418 Reported-by: Dima Tisnek
4419
4420- travis: add boringssl build
4421
4422 Uses a separate build without --enable-debug and no valgrind.
4423
4424 The debug option causes far too many warnings in boringssl's headers
4425 (C++ comments, trailing commas etc). Valgrind triggers some false
4426 positive errors in thread-local data used by boringssl.
4427
4428 Closes #2118
4429
Alex Deymo486467e2017-12-19 19:04:07 +01004430Version 7.57.0 (29 Nov 2017)
4431
4432Daniel Stenberg (29 Nov 2017)
4433- RELEASE-NOTES: curl 7.57.0
4434
4435- THANKS: added contributors from 7.57.0 release
4436
4437- openssl: fix boringssl build again
4438
4439 commit d3ab7c5a21e broke the boringssl build since it doesn't have
4440 RSA_flags(), so we disable that code block for boringssl builds.
4441
4442 Reported-by: W. Mark Kubacki
4443 Fixes #2117
4444
4445- curl_ntlm_core.c: use the limits.h's SIZE_T_MAX if provided
4446
4447- libcurl-share.3: the connection cache is shareable now
4448
4449- global_init: ignore CURL_GLOBAL_SSL's absense
4450
4451 This bit is no longer used. It is not clear what it meant for users to
4452 "init the TLS" in a world with different TLS backends and since the
4453 introduction of multissl, libcurl didn't properly work if inited without
4454 this bit set.
4455
4456 Not a single user responded to the call for users of it:
4457 https://curl.haxx.se/mail/lib-2017-11/0072.html
4458
4459 Reported-by: Evgeny Grin
4460 Assisted-by: Jay Satiro
4461
4462 Fixes #2089
4463 Fixes #2083
4464 Closes #2107
4465
4466- ntlm: avoid integer overflow for malloc size
4467
4468 Reported-by: Alex Nichols
4469 Assisted-by: Kamil Dudka and Max Dymond
4470
4471 CVE-2017-8816
4472
4473 Bug: https://curl.haxx.se/docs/adv_2017-11e7.html
4474
4475- wildcardmatch: fix heap buffer overflow in setcharset
4476
4477 The code would previous read beyond the end of the pattern string if the
4478 match pattern ends with an open bracket when the default pattern
4479 matching function is used.
4480
4481 Detected by OSS-Fuzz:
4482 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4161
4483
4484 CVE-2017-8817
4485
4486 Bug: https://curl.haxx.se/docs/adv_2017-ae72.html
4487
4488- [Jay Satiro brought this change]
4489
4490 url: fix alignment of ssl_backend_data struct
4491
4492 - Align the array of ssl_backend_data on a max 32 byte boundary.
4493
4494 8 is likely to be ok but I went with 32 for posterity should one of
4495 the ssl_backend_data structs change to contain a larger sized variable
4496 in the future.
4497
4498 Prior to this change (since dev 70f1db3, release 7.56) the connectdata
4499 structure was undersized by 4 bytes in 32-bit builds with ssl enabled
4500 because long long * was mistakenly used for alignment instead of
4501 long long, with the intention being an 8 byte boundary. Also long long
4502 may not be an available type.
4503
4504 The undersized connectdata could lead to oob read/write past the end in
4505 what was expected to be the last 4 bytes of the connection's secondary
4506 socket https proxy ssl_backend_data struct (the secondary socket in a
4507 connection is used by ftp, others?).
4508
4509 Closes https://github.com/curl/curl/issues/2093
4510
4511 CVE-2017-8818
4512
4513 Bug: https://curl.haxx.se/docs/adv_2017-af0a.html
4514
4515- ssh: remove check for a NULL pointer (!)
4516
4517 With this check present, scan-build warns that we might dereference this
4518 point in other places where it isn't first checked for NULL. Thus, if it
4519 *can* be NULL we have a problem on a few places. However, this pointer
4520 should not be possible to be NULL here so I remove the check and thus
4521 also three different scan-build warnings.
4522
4523 Closes #2111
4524
4525- [Matthew Kerwin brought this change]
4526
4527 test: add test for bad UNC/SMB path in file: URL
4528
4529- [Matthew Kerwin brought this change]
4530
4531 test: add tests to ensure basic file: URLs
4532
4533- [Matthew Kerwin brought this change]
4534
4535 URL: update "file:" URL handling
4536
4537 * LOTS of comment updates
4538 * explicit error for SMB shares (e.g. "file:////share/path/file")
4539 * more strict handling of authority (i.e. "//localhost/")
4540 * now accepts dodgy old "C:|" drive letters
4541 * more precise handling of drive letters in and out of Windows
4542 (especially recognising both "file:c:/" and "file:/c:/")
4543
4544 Closes #2110
4545
4546- metalink: fix memory-leak and NULL pointer dereference
4547
4548 Reported by scan-build
4549
4550 Closes #2109
4551
4552- [Alessandro Ghedini brought this change]
4553
4554 connect: add support for new TCP Fast Open API on Linux
4555
4556 The new API added in Linux 4.11 only requires setting a socket option
4557 before connecting, without the whole sento() machinery.
4558
4559 Notably, this makes it possible to use TFO with SSL connections on Linux
4560 as well, without the need to mess around with OpenSSL (or whatever other
4561 SSL library) internals.
4562
4563 Closes #2056
4564
4565- make: fix "make distclean"
4566
4567 Fixes #2097
4568 Closes #2108
4569
4570- RELEASE-NOTES: synced with 31f18d272
4571
4572Jay Satiro (23 Nov 2017)
4573- connect: improve the bind error message
4574
4575 eg consider a non-existent interface eth8, curl --interface eth8
4576
4577 Before: curl: (45) Could not resolve host: eth8
4578 After: curl: (45) Couldn't bind to 'eth8'
4579
4580 Bug: https://github.com/curl/curl/issues/2104
4581 Reported-by: Alfonso Martone
4582
4583Daniel Stenberg (23 Nov 2017)
4584- examples/rtsp: clear RANGE again after use
4585
4586 Fixes #2106
4587 Reported-by: youngchopin on github
4588
4589- [Michael Kaufmann brought this change]
4590
4591 test1264: verify URL with space in host name being rejected
4592
4593- url: reject ASCII control characters and space in host names
4594
4595 Host names like "127.0.0.1 moo" would otherwise be accepted by some
4596 getaddrinfo() implementations.
4597
4598 Updated test 1034 and 1035 accordingly.
4599
4600 Fixes #2073
4601 Closes #2092
4602
4603- Curl_open: fix OOM return error correctly
4604
4605 Closes #2098
4606
4607- http2: fix "Value stored to 'end' is never read" scan-build error
4608
4609- http2: fix "Value stored to 'hdbuf' is never read" scan-build error
4610
4611- openssl: fix "Value stored to 'rc' is never read" scan-build error
4612
4613- mime: fix "Value stored to 'sz' is never read" scan-build error
4614
4615- Curl_llist_remove: fix potential NULL pointer deref
4616
4617 Fixes a scan-build warning.
4618
4619- ntlm: remove unnecessary NULL-check to please scan-build
4620
4621- BUGS: spellchecked
4622
4623Jay Satiro (18 Nov 2017)
4624- [fmmedeiros brought this change]
4625
4626 examples/curlx: Fix code style
4627
4628 - Add braces around multi-line if statement.
4629
4630 Closes https://github.com/curl/curl/pull/2096
4631
4632Daniel Stenberg (17 Nov 2017)
4633- resolve: allow IP address within [] brackets
4634
4635 ... so that IPv6 addresses can be passed like they can for connect-to
4636 and how they're used in URLs.
4637
4638 Added test 1324 to verify
4639 Reported-by: Alex Malinovich
4640
4641 Fixes #2087
4642 Closes #2091
4643
4644- [Pavol Markovic brought this change]
4645
4646 macOS: Fix missing connectx function with Xcode version older than 9.0
4647
4648 The previous fix https://github.com/curl/curl/pull/1788 worked just for
4649 Xcode 9. This commit extends the fix to older Xcode versions effectively
4650 by not using connectx function.
4651
4652 Fixes https://github.com/curl/curl/issues/1330
4653 Fixes https://github.com/curl/curl/issues/2080
4654 Closes https://github.com/curl/curl/pull/1336
4655 Closes #2082
4656
4657- [Dirk Feytons brought this change]
4658
4659 openssl: fix too broad use of HAVE_OPAQUE_EVP_PKEY
4660
4661 Fixes #2079
4662 Closes #2081
4663
4664- TODO: ignore private IP addresses in PASV response
4665
4666 Closes #1455
4667
4668- RELEASE-NOTES: synced with ae7369b6d
4669
4670Michael Kaufmann (14 Nov 2017)
4671- URL: return error on malformed URLs with junk after IPv6 bracket
4672
4673 Follow-up to aadb7c7. Verified by new test 1263.
4674
4675 Closes #2072
4676
4677Daniel Stenberg (14 Nov 2017)
4678- INTERNALS: we may use libidn2 now, not libidn
4679
4680Patrick Monnerat (13 Nov 2017)
4681- zlib/brotli: only include header files in modules needing them
4682
4683 There is a conflict on symbol 'free_func' between openssl/crypto.h and
4684 zlib.h on AIX. This is an attempt to resolve it.
4685
4686 Bug: https://curl.haxx.se/mail/lib-2017-11/0032.html
4687 Reported-By: Michael Felt
4688
4689Daniel Stenberg (13 Nov 2017)
4690- SMB: fix uninitialized local variable
4691
4692 Reported-by: Brian Carpenter
4693
4694- [Orgad Shaneh brought this change]
4695
4696 connect.c: remove executable bit on file
4697
4698 Closes #2071
4699
4700- [hsiao yi brought this change]
4701
4702 README.md: fixed layout
4703
4704 Closes #2069
4705
4706- setopt: split out curl_easy_setopt() to its own file
4707
4708 ... to make url.c smaller.
4709
4710 Closes #1944
4711
4712Jay Satiro (10 Nov 2017)
4713- [John Starks brought this change]
4714
4715 cmake: Add missing setmode check
4716
4717 Ensure HAVE_SETMODE is set to 1 on OSes that have setmode. Without this,
4718 curl will corrupt binary files when writing them to stdout on Windows.
4719
4720 Closes https://github.com/curl/curl/pull/2067
4721
4722Daniel Stenberg (10 Nov 2017)
4723- curl_share_setopt: va_end was not called if conncache errors
4724
4725 CID 984459, detected by Coverity
4726
4727Sergei Nikulov (10 Nov 2017)
4728- [John Starks brought this change]
4729
4730 cmake: Correctly include curl.rc in Windows builds (#2064)
4731
4732 Update CMakeLists.txt to add curl.rc to the correct list.
4733
4734Daniel Stenberg (9 Nov 2017)
4735- RELEASE-NOTES: synced with 32828cc4f
4736
4737- [Luca Boccassi brought this change]
4738
4739 --interface: add support for Linux VRF
4740
4741 The --interface command (CURLOPT_INTERFACE option) already uses
4742 SO_BINDTODEVICE on Linux, but it tries to parse it as an interface or IP
4743 address first, which fails in case the user passes a VRF.
4744
4745 Try to use the socket option immediately and parse it as a fallback
4746 instead. Update the documentation to mention this feature, and that it
4747 requires the binary to be ran by root or with CAP_NET_RAW capabilities
4748 for this to work.
4749
4750 Closes #2024
4751
4752- curl_share_setopt.3: document CURL_LOCK_DATA_CONNECT
4753
4754 Closes #2043
4755
4756- examples: add shared-connection-cache
4757
4758- test1554: verify connection cache sharing
4759
4760- share: add support for sharing the connection cache
4761
4762- imap: deal with commands case insensitively
4763
4764 As documented in RFC 3501 section 9:
4765 https://tools.ietf.org/html/rfc3501#section-9
4766
4767 Closes #2061
4768
4769- connect: store IPv6 connection status after valid connection
4770
4771 ... previously it would store it already in the happy eyeballs stage
4772 which could lead to the IPv6 bit being set for an IPv4 connection,
4773 leading to curl not wanting to do EPSV=>PASV for FTP transfers.
4774
4775 Closes #2053
4776
4777- curl_multi_fdset.3: emphasize curl_multi_timeout
4778
4779 ... even when there's no socket to wait for, the timeout can still be
4780 very short.
4781
4782Jay Satiro (9 Nov 2017)
4783- content_encoding: fix inflate_stream for no bytes available
4784
4785 - Don't call zlib's inflate() when avail_in stream bytes is 0.
4786
4787 This is a follow up to the parent commit 19e66e5. Prior to that change
4788 libcurl's inflate_stream could call zlib's inflate even when no bytes
4789 were available, causing inflate to return Z_BUF_ERROR, and then
4790 inflate_stream would treat that as a hard error and return
4791 CURLE_BAD_CONTENT_ENCODING.
4792
4793 According to the zlib FAQ, Z_BUF_ERROR is not fatal.
4794
4795 This bug would happen randomly since packet sizes are arbitrary. A test
4796 of 10,000 transfers had 55 fail (ie 0.55%).
4797
4798 Ref: https://zlib.net/zlib_faq.html#faq05
4799
4800 Closes https://github.com/curl/curl/pull/2060
4801
4802Patrick Monnerat (7 Nov 2017)
4803- content_encoding: do not write 0 length data
4804
4805Daniel Stenberg (6 Nov 2017)
4806- fnmatch: remove dead code
4807
4808 There was a duplicate check for backslashes in the setcharset()
4809 function.
4810
4811 Coverity CID 1420611
4812
4813- url: remove unncessary NULL-check
4814
4815 Since 'conn' won't be NULL in there and we also access the pointer in
4816 there without the check.
4817
4818 Coverity CID 1420610
4819
Elliott Hughescac39802018-04-27 16:19:43 -07004820Viktor Szakats (6 Nov 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01004821- src/Makefile.m32: fix typo in brotli lib customization
4822
4823 Ref cc1f4436099decb9d1a7034b2bb773a9f8379d31
4824
4825- Makefile.m32: allow to customize brotli libs
4826
4827 It adds the ability to link against static brotli libs.
4828
4829 Also fix brotli include path.
4830
4831Patrick Monnerat (5 Nov 2017)
4832- travis: add a job with brotli enabled
4833
Elliott Hughescac39802018-04-27 16:19:43 -07004834- [Viktor Szakats brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01004835
4836 Makefile.m32: add brotli support
4837
4838- HTTP: implement Brotli content encoding
4839
4840 This uses the brotli external library (https://github.com/google/brotli).
4841 Brotli becomes a feature: additional curl_version_info() bit and
4842 structure fields are provided for it and CURLVERSION_NOW bumped.
4843
4844 Tests 314 and 315 check Brotli content unencoding with correct and
4845 erroneous data.
4846
4847 Some tests are updated to accomodate with the now configuration dependent
4848 parameters of the Accept-Encoding header.
4849
4850- HTTP: support multiple Content-Encodings
4851
4852 This is implemented as an output streaming stack of unencoders, the last
4853 calling the client write procedure.
4854
4855 New test 230 checks this feature.
4856
4857 Bug: https://github.com/curl/curl/pull/2002
4858 Reported-By: Daniel Bankhead
4859
4860Jay Satiro (4 Nov 2017)
4861- url: remove arg value check from CURLOPT_SSH_AUTH_TYPES
4862
4863 Since CURLSSH_AUTH_ANY (aka CURLSSH_AUTH_DEFAULT) is ~0 an arg value
4864 check on this option is incorrect; we have to accept any value.
4865
4866 Prior to this change since f121575 (7.56.1+) CURLOPT_SSH_AUTH_TYPES
4867 erroneously rejected CURLSSH_AUTH_ANY with CURLE_BAD_FUNCTION_ARGUMENT.
4868
4869 Bug: https://github.com/curl/curl/commit/f121575#commitcomment-25347120
4870
4871Daniel Stenberg (4 Nov 2017)
4872- ntlm: avoid malloc(0) for zero length passwords
4873
4874 It triggers an assert() when built with memdebug since malloc(0) may
4875 return NULL *or* a valid pointer.
4876
4877 Detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4054
4878
4879 Assisted-by: Max Dymond
4880 Closes #2054
4881
4882- RELEASE-NOTES: synced with ee8016b3d
4883
4884- curl: speed up handling of many URLs
4885
4886 By properly keeping track of the last entry in the list of URLs/uploads
4887 to handle, curl now avoids many meaningless traverses of the list which
4888 speeds up many-URL handling *MASSIVELY* (several magnitudes on 100K
4889 URLs).
4890
4891 Added test 1291, to verify that it doesn't take ages - but we don't have
4892 any detection of "too slow" command in the test suite.
4893
4894 Reported-by: arainchik on github
4895 Fixes #1959
4896 Closes #2052
4897
4898- curl: pass through [] in URLs instead of calling globbing error
4899
4900 Assisted-by: Per Lundberg
4901 Fixes #2044
4902 Closes #2046
4903 Closes #2048
4904
4905- CURLOPT_INFILESIZE: accept -1
4906
4907 Regression since f121575
4908
4909 Reported-by: Petr Voytsik
4910 Fixes #2047
4911
4912Jay Satiro (2 Nov 2017)
4913- url: fix CURLOPT_DNS_CACHE_TIMEOUT arg value check to allow -1
4914
4915 Prior to this change since f121575 (7.56.1+) CURLOPT_DNS_CACHE_TIMEOUT
4916 erroneously rejected -1 with CURLE_BAD_FUNCTION_ARGUMENT.
4917
4918Dan Fandrich (1 Nov 2017)
4919- http2: Fixed OOM handling in upgrade request
4920
4921 This caused the torture tests on test 1800 to fail.
4922
4923- tests: Fixed torture tests on tests 556 and 650
4924
4925 Test cleanup after OOM wasn't being consistently performed.
4926
4927Daniel Stenberg (1 Nov 2017)
4928- CURLOPT_MAXREDIRS: allow -1 as a value
4929
4930 ... which is valid according to documentation. Regression since
4931 f121575c0b5f.
4932
4933 Verified now in test 501.
4934
4935 Reported-by: cbartl on github
4936 Fixes #2038
4937 Closes #2039
4938
4939- include: remove conncache.h inclusion from where its not needed
4940
4941Jay Satiro (1 Nov 2017)
4942- url: fix CURLOPT_POSTFIELDSIZE arg value check to allow -1
4943
4944 .. also add same arg value check to CURLOPT_POSTFIELDSIZE_LARGE.
4945
4946 Prior to this change since f121575 (7.56.1+) CURLOPT_POSTFIELDSIZE
4947 erroneously rejected -1 value with CURLE_BAD_FUNCTION_ARGUMENT.
4948
4949 Bug: https://curl.haxx.se/mail/lib-2017-11/0000.html
4950 Reported-by: Andrew Lambert
4951
4952Daniel Stenberg (31 Oct 2017)
4953- cookie: avoid NULL dereference
4954
4955 ... when expiring old cookies.
4956
4957 Reported-by: Pavel Gushchin
4958 Fixes #2032
4959 Closes #2035
4960
4961Marcel Raad (30 Oct 2017)
4962- memdebug: use send/recv signature for curl_dosend/curl_dorecv
4963
4964 This avoids build errors and warnings caused by implicit casts.
4965
4966 Closes https://github.com/curl/curl/pull/2031
4967
4968Daniel Stenberg (30 Oct 2017)
4969- [Juro Bystricky brought this change]
4970
4971 mkhelp.pl: support reproducible build
4972
4973 Do not generate line with the current date, such as:
4974
4975 * Generation time: Tue Oct-24 18:01:41 2017
4976
4977 This will improve reproducibility. The generated string is only
4978 part of a comment, so there should be no adverse consequences.
4979
4980 Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
4981
4982 closes #2026
4983
4984Dan Fandrich (30 Oct 2017)
4985- runtests.pl: Fixed typo in message
4986
4987Daniel Stenberg (30 Oct 2017)
4988- curlx: the timeval functions are no longer provided as curlx_*
4989
4990 Pointed-out-by: Dmitri Tikhonov
4991 Bug: #2034
4992
4993- select: update comments
4994
4995 s/curlx_tvnow/Curl_now
4996
4997- INTERNALS: remove curlx_tv* functions no longer provided
4998
4999- [Dmitri Tikhonov brought this change]
5000
5001 timeval: use mach time on MacOS
5002
5003 If clock_gettime() is not supported, use mach_absolute_time() on MacOS.
5004
5005 closes #2033
5006
Elliott Hughes1ef06ba2018-05-30 15:43:58 -07005007Patrick Monnerat (29 Oct 2017)
5008- cli tool: improve ";type=" handling in -F option arguments
Alex Deymo486467e2017-12-19 19:04:07 +01005009
Elliott Hughes1ef06ba2018-05-30 15:43:58 -07005010- cli tool: in -F option arg, comma is a delimiter for files only
Alex Deymo486467e2017-12-19 19:04:07 +01005011
5012 Also upgrade test 1133 to cover this case and clarify man page about
5013 form data quoting.
5014
5015 Bug: https://github.com/curl/curl/issues/2022
5016 Reported-By: omau on github
5017
5018Daniel Stenberg (29 Oct 2017)
5019- timeleft: made two more users of Curl_timeleft use timediff_t
5020
5021Jakub Zakrzewski (28 Oct 2017)
5022- cmake: Export libcurl and curl targets to use by other cmake projects
5023
5024 The config files define curl and libcurl targets as imported targets
5025 CURL::curl and CURL::libcurl. For backward compatibility with CMake-
5026 provided find-module the CURL_INCLUDE_DIRS and CURL_LIBRARIES are
5027 also set.
5028
5029 Closes #1879
5030
5031Daniel Stenberg (28 Oct 2017)
5032- RELEASE-NOTES: synced with f20cbac97
5033
Elliott Hughes0128fe42018-02-27 14:57:55 -08005034- [Florin Petriuc brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01005035
5036 auth: Added test cases for RFC7616
5037
5038 Updated docs to include support for RFC7616
5039
5040 Signed-off-by: Florin <petriuc.florin@gmail.com>
5041
5042 Closes #1934
5043
Elliott Hughes0128fe42018-02-27 14:57:55 -08005044- [Florin Petriuc brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01005045
5046 auth: add support for RFC7616 - HTTP Digest access authentication
5047
5048 Signed-off-by: Florin <petriuc.florin@gmail.com>
5049
5050- [Daniel Bankhead brought this change]
5051
5052 TODO: support multiple Content-Encodings
5053
5054 Closes #2002
5055
5056- ROADMAP: cleanup
5057
5058 Removed done stuff. Removed entries no longer considered for the near
5059 term.
5060
5061- [Magicansk brought this change]
5062
5063 ROADMAP.md: spelling fixes
5064
5065 Closes #2028
5066
5067- Curl_timeleft: change return type to timediff_t
5068
5069 returning 'time_t' is problematic when that type is unsigned and we
5070 return values less than zero to signal "already expired", used in
5071 several places in the code.
5072
5073 Closes #2021
5074
5075- appveyor: add a win32 build
5076
5077- setopt: fix CURLOPT_SSH_AUTH_TYPES option read
5078
5079 Regression since f121575c0b5f
5080
5081 Reported-by: Rob Cotrone
5082
5083Marcel Raad (27 Oct 2017)
5084- resolvers: only include anything if needed
5085
5086 This avoids warnings about unused stuff.
5087
5088 Closes https://github.com/curl/curl/pull/2023
5089
5090Daniel Stenberg (27 Oct 2017)
5091- HELP-US: rename the subtitle too since the label is changed
5092
5093 "PR-welcome" was the former name.
5094
5095- curl_setup.h: oops, shorten the too long line
5096
5097- [Martin Storsjo brought this change]
5098
5099 curl_setup: Improve detection of CURL_WINDOWS_APP
5100
5101 If WINAPI_FAMILY is defined, it should be safe to try to include
5102 winapifamily.h to check what the define evaluates to.
5103
5104 This should fix detection of CURL_WINDOWS_APP if building with
5105 _WIN32_WINNT set to 0x0600.
5106
5107 Closes #2025
5108
5109Jay Satiro (26 Oct 2017)
5110- transfer: Fix chunked-encoding upload bug
5111
5112 - When uploading via chunked-encoding don't compare file size to bytes
5113 sent to determine whether the upload has finished.
5114
5115 Chunked-encoding adds its own overhead which why the bytes sent is not
5116 equal to the file size. Prior to this change if a file was uploaded in
5117 chunked-encoding and its size was known it was possible that the upload
5118 could end prematurely without sending the final few chunks. That would
5119 result in a server hang waiting for the remaining data, likely followed
5120 by a disconnect.
5121
5122 The scope of this bug is limited to some arbitrary file sizes which have
5123 not been determined. One size that triggers the bug is 475020.
5124
5125 Bug: https://github.com/curl/curl/issues/2001
5126 Reported-by: moohoorama@users.noreply.github.com
5127
5128 Closes https://github.com/curl/curl/pull/2010
5129
5130Daniel Stenberg (26 Oct 2017)
5131- timeval: make timediff_t also work on 32bit windows
5132
5133 ... by using curl_off_t for the typedef if time_t is larger than 4
5134 bytes.
5135
5136 Reported-by: Gisle Vanem
5137 Bug: https://github.com/curl/curl/commit/b9d25f9a6b3ca791385b80a6a3c3fa5ae113e1e0#co
5138 mmitcomment-25205058
5139 Closes #2019
5140
5141- curl_fnmatch: return error on illegal wildcard pattern
5142
5143 ... instead of doing an infinite loop!
5144
5145 Added test 1162 to verify.
5146
5147 Reported-by: Max Dymond
5148 Fixes #2015
5149 Closes #2017
5150
5151- [Max Dymond brought this change]
5152
5153 wildcards: don't use with non-supported protocols
5154
5155 Fixes timeouts in the fuzzing tests for non-FTP protocols.
5156
5157 Closes #2016
5158
5159- [Max Dymond brought this change]
5160
5161 multi: allow table handle sizes to be overridden
5162
5163 Allow users to specify their own hash define for
5164 CURL_CONNECTION_HASH_SIZE so that both values can be overridden.
5165
5166 Closes #1982
5167
5168- time: rename Curl_tvnow to Curl_now
5169
5170 ... since the 'tv' stood for timeval and this function does not return a
5171 timeval struct anymore.
5172
5173 Also, cleaned up the Curl_timediff*() functions to avoid typecasts and
5174 clean up the descriptive comments.
5175
5176 Closes #2011
5177
5178- ftplistparser: follow-up cleanup to remove PL_ERROR()
5179
5180- [Max Dymond brought this change]
5181
5182 ftplistparser: free off temporary memory always
5183
5184 When using the FTP list parser, ensure that the memory that's
5185 allocated is always freed.
5186
5187 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3682
5188 Closes #2013
5189
5190- timediff: return timediff_t from the time diff functions
5191
5192 ... to cater for systems with unsigned time_t variables.
5193
5194 - Renamed the functions to curlx_timediff and Curl_timediff_us.
5195
5196 - Added overflow protection for both of them in either direction for
5197 both 32 bit and 64 bit time_ts
5198
5199 - Reprefixed the curlx_time functions to use Curl_*
5200
5201 Reported-by: Peter Piekarski
5202 Fixes #2004
5203 Closes #2005
5204
5205- [Paul Howarth brought this change]
5206
5207 libtest: Add required test libraries for lib1552 and lib1553
5208
5209 They use $(TESTUTIL) and thus should use $(TESTUTIL_LIBS) too.
5210
5211 This fixes build failures on Fedora 13.
5212
5213 Closes #2006
5214
5215- [Alessandro Ghedini brought this change]
5216
5217 libcurl-tutorial.3: fix typo
5218
5219 closes #2008
5220
5221Alessandro Ghedini (23 Oct 2017)
5222- curl_mime_filedata.3: fix typos
5223
5224Daniel Stenberg (23 Oct 2017)
5225- RELEASE-NOTES: clean slate towards 7.57.0
5226
5227- [Max Dymond brought this change]
5228
5229 travis: exit if any steps fail
5230
5231 We don't expect any steps to fail in travis. Exit the script if they do.
5232
5233 Closes #1966
5234
5235Version 7.56.1 (23 Oct 2017)
5236
5237Daniel Stenberg (23 Oct 2017)
5238- RELEASE-NOTES: 7.56.1
5239
5240- THANKS: update at 7.56.1 release time
5241
5242- [Jon DeVree brought this change]
5243
5244 mk-ca-bundle: Remove URL for aurora
5245
5246 Aurora is no longer used by Mozilla
5247 https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/
5248
5249- [Jon DeVree brought this change]
5250
5251 mk-ca-bundle: Fix URL for NSS
5252
5253 The 'tip' is the most recent branch committed to, this should be
5254 'default' like the URLs for the browser are.
5255
5256 Closes #1998
5257
5258- imap: if a FETCH response has no size, don't call write callback
5259
5260 CVE-2017-1000257
5261
5262 Reported-by: Brian Carpenter and 0xd34db347
5263 Also detected by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3586
5264
5265- ftp: reject illegal IP/port in PASV 227 response
5266
5267 ... by using range checks. Among other things, this avoids an undefined
5268 behavior for a left shift that could happen on negative or very large
5269 values.
5270
5271 Closes #1997
5272
5273 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3694
5274
5275Patrick Monnerat (20 Oct 2017)
5276- test653: check reuse of easy handle after mime data change
5277
5278 See issue #1999
5279
5280- mime: do not reuse previously computed multipart size
5281
5282 The contents might have changed: size must be recomputed.
5283
5284 Reported-by: moteus on github
5285 Fixes #1999
5286
5287- test308: disable if MultiSSL feature enabled
5288
5289 Even if OpenSSL is enabled, it might not be the default backend when
5290 multi-ssl is enabled, causing the test to fail.
5291
5292- runtests: support MultiSSL client feature
5293
5294- vtls: change struct Curl_ssl `close' field name to `close_one'.
5295
5296 On OS/400, `close' is an ASCII system macro that corrupts the code if
5297 not used in a context not targetting the close() system API.
5298
5299- os400: add missing symbols in config file.
5300
5301 Also adjust makefile to renamed files and warn about installation dirs mix-up.
5302
5303- test652: curl_mime_data + base64 encoder with large contents
5304
5305- mime: limit bas64-encoded lines length to 76 characters
5306
5307Daniel Stenberg (16 Oct 2017)
5308- RELEASE-NOTES: synced with f121575c0
5309
5310- setopt: range check most long options
5311
5312 ... filter early instead of risking "funny values" having to be dealt
5313 with elsewhere.
5314
5315- setopt: avoid integer overflows when setting millsecond values
5316
5317 ... that are multiplied by 1000 when stored.
5318
5319 For 32 bit long systems, the max value accepted (2147483 seconds) is >
5320 596 hours which is unlikely to ever be set by a legitimate application -
5321 and previously it didn't work either, it just caused undefined behavior.
5322
5323 Also updated the man pages for these timeout options to mention the
5324 return code.
5325
5326 Closes #1938
5327
Elliott Hughescac39802018-04-27 16:19:43 -07005328Viktor Szakats (15 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01005329- makefile.m32: allow to override gcc, ar and ranlib
5330
5331 Allow to ovverride certain build tools, making it possible to
5332 use LLVM/Clang to build curl. The default behavior is unchanged.
5333 To build with clang (as offered by MSYS2), these settings can
5334 be used:
5335
5336 CURL_CC=clang
5337 CURL_AR=llvm-ar
5338 CURL_RANLIB=llvm-ranlib
5339
5340 Closes https://github.com/curl/curl/pull/1993
5341
5342- ldap: silence clang warning
5343
5344 Use memset() to initialize a structure to avoid LLVM/Clang warning:
5345 ldap.c:193:39: warning: missing field 'UserLength' initializer [-Wmissing-field-initializers]
5346
5347 Closes https://github.com/curl/curl/pull/1992
5348
5349Daniel Stenberg (14 Oct 2017)
5350- runtests: use valgrind for torture as well
5351
5352 NOTE: it makes them terribly slow. I recommend only using valgrind for
5353 specific torture tests or using lots of patience.
5354
5355- memdebug: trace send, recv and socket
5356
5357 ... to allow them to be included in torture tests too.
5358
5359 closes #1980
5360
5361- configure: remove the C++ compiler check
5362
5363 ... we used it only for the fuzzer, which we now have in a separate git
5364 repo.
5365
5366 Closes #1990
5367
5368Patrick Monnerat (13 Oct 2017)
5369- mime: do not call failf() if easy handle is NULL.
5370
5371Daniel Stenberg (13 Oct 2017)
5372- test651: curl_formadd with huge COPYCONTENTS
5373
5374- mime: fix the content reader to handle >16K data properly
5375
5376 Reported-by: Jeroen Ooms
5377 Closes #1988
5378
5379Patrick Monnerat (12 Oct 2017)
5380- mime: keep "text/plain" content type if user-specified.
5381
5382 Include test cases in 554, 587, 650.
5383
5384 Fixes https://github.com/curl/curl/issues/1986
5385
5386- cli tool: use file2memory() to buffer stdin in -F option.
5387
5388 Closes PR https://github.com/curl/curl/pull/1985
5389
5390- cli tool: reimplement stdin buffering in -F option.
5391
5392 If stdin is not a regular file, its content is memory-buffered to enable
5393 a possible data "rewind".
5394 In all cases, stdin data size is determined before real use to avoid
5395 having an unknown part's size.
5396
5397 --libcurl generated code is left as an unbuffered stdin fread/fseek callback
5398 part with unknown data size.
5399
5400 Buffering is not supported in deprecated curl_formadd() API.
5401
5402Daniel Stenberg (12 Oct 2017)
5403- winbuild/BUILD.WINDOWS.txt: mention WITH_NGHTTP2
5404
5405- HELP-US: the label "PR-welcome" is now renamed to "help wanted"
5406
5407 following the new github "standard"
5408
5409- RELEASE-NOTES: synced with 5505df7d2
5410
5411Jay Satiro (11 Oct 2017)
5412- [Artak Galoyan brought this change]
5413
5414 url: Update current connection SSL verify params in setopt
5415
5416 Now VERIFYHOST, VERIFYPEER and VERIFYSTATUS options change during active
5417 connection updates the current connection's (i.e.'connectdata'
5418 structure) appropriate ssl_config (and ssl_proxy_config) structures
5419 variables, making these options effective for ongoing connection.
5420
5421 This functionality was available before and was broken by the
5422 following change:
5423 "proxy: Support HTTPS proxy and SOCKS+HTTP(s)"
5424 CommitId: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151.
5425
5426 Bug: https://github.com/curl/curl/issues/1941
5427
5428 Closes https://github.com/curl/curl/pull/1951
5429
5430Daniel Stenberg (11 Oct 2017)
5431- [David Benjamin brought this change]
5432
5433 openssl: don't use old BORINGSSL_YYYYMM macros
5434
5435 Those were temporary things we'd add and remove for our own convenience
5436 long ago. The last few stayed around for too long as an oversight but
5437 have since been removed. These days we have a running
5438 BORINGSSL_API_VERSION counter which is bumped when we find it
5439 convenient, but 2015-11-19 was quite some time ago, so just check
5440 OPENSSL_IS_BORINGSSL.
5441
5442 Closes #1979
5443
5444- test950; verify SMTP with custom request
5445
5446- ftpserver: support case insensitive commands
5447
5448- smtp_done: free data before returning (on send failure)
5449
5450 ... as otherwise it could leak that memory.
5451
5452 Detected by OSS-fuzz:
5453 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3600
5454
5455 Assisted-by: Max Dymond
5456 Closes #1977
5457
5458- FTP: URL decode path for dir listing in nocwd mode
5459
5460 Reported-by: Zenju on github
5461
5462 Test 244 added to verify
5463 Fixes #1974
5464 Closes #1976
5465
5466- test298: verify --ftp-method nowcwd with URL encoded path
5467
5468 Ref: #1974
5469
5470- CURLOPT_XFERINFODATA.3: fix duplicate see also
5471
5472- CURLOPT_NOPROGRESS.3: also refer to xferinfofunction
5473
5474- FAQ: s/CURLOPT_PROGRESSFUNCTION/CURLOPT_XFERINFOFUNCTION
5475
5476- openssl: enable PKCS12 support for !BoringSSL
5477
5478 Enable PKCS12 for all non-boringssl builds without relying on configure
5479 or cmake checks.
5480
5481 Bug: https://curl.haxx.se/mail/lib-2017-10/0007.html
5482 Reported-by: Christian Schmitz
5483 Closes #1948
5484
5485- [Kristiyan Tsaklev brought this change]
5486
5487 curl: don't pass semicolons when parsing Content-Disposition
5488
5489 Test 1422 updated to verify.
5490
5491 Closes #1964
5492
5493Patrick Monnerat (9 Oct 2017)
5494- mime: properly unbind mime structure in curl_mime_free().
5495
5496 This allows freeing a mime structure bound to the easy handle before
5497 curl_easy_cleanup().
5498
5499 Fixes #1970.
5500
5501Daniel Stenberg (9 Oct 2017)
5502- RTSP: avoid integer overflow on funny RTSP response
5503
5504 ... like a very large non-existing RTSP version number.
5505
5506 Added test 577 to verify.
5507
5508 Detected by OSS-fuzz.
5509 Closes #1969
5510
5511Patrick Monnerat (8 Oct 2017)
5512- ftpserver: properly reset $ftptargetdir.
5513
5514- test643: verify curl_mime_subparts() rejects cyclic additions.
5515
5516- mime: refuse to add subparts to one of their own descendants.
5517
5518 Reported-by: Alexey Melnichuk
5519 Fixes #1962
5520
5521- mime: avoid resetting a part's encoder when part's contents change.
5522
5523- mime: improve unbinding top multipart from easy handle.
5524
5525 Also avoid dangling pointers in referencing parts.
5526
5527Daniel Stenberg (8 Oct 2017)
5528- RELEASE-NOTES: synced with a4c1c75da30af1
5529
5530- curlver.h: next expected release is 7.57.0
5531
5532Patrick Monnerat (8 Oct 2017)
5533- mime: be tolerant about setting twice the same header list in a part.
5534
5535- docs: clarify form/mime usage of non-regular data files.
5536
5537Daniel Stenberg (8 Oct 2017)
5538- Revert "multi_done: wait for name resolve to finish if still ongoing"
5539
5540 This reverts commit f3e03f6c0ac52a1bf396e03f7d7e9b5b3b7165fe.
5541
5542 Caused memory leaks in the fuzzer, needs to be done differently.
5543
5544 Disable test 1553 for now too, as it causes memory leaks without this
5545 commit!
5546
5547- remove_handle: call multi_done() first, then clear dns cache pointer
5548
5549 Closes #1960
5550
5551- multi_done: wait for name resolve to finish if still ongoing
5552
5553 ... as we must clean up memory.
5554
5555- pingpong: return error when trying to send without connection
5556
5557 When imap_done() got called before a connection is setup, it would try
5558 to "finish up" and dereffed a NULL pointer.
5559
5560 Test case 1553 managed to reproduce. I had to actually use a host name
5561 to try to resolve to slow it down, as using the normal local server IP
5562 will make libcurl get a connection in the first curl_multi_perform()
5563 loop and then the bug doesn't trigger.
5564
5565 Fixes #1953
5566 Assisted-by: Max Dymond
5567
5568Dan Fandrich (6 Oct 2017)
5569- tests: added flaky keyword to tests 587 and 644
5570
5571 These are around 5% flaky in my Linux x86 autobuilds.
5572
5573Marcel Raad (6 Oct 2017)
5574- vtls: fix warnings with --disable-crypto-auth
5575
5576 When CURL_DISABLE_CRYPTO_AUTH is defined, Curl_none_md5sum's parameters
5577 are not used.
5578
5579Daniel Stenberg (6 Oct 2017)
5580- multi_cleanup: call DONE on handles that never got that
5581
5582 ... fixes a memory leak with at least IMAP when remove_handle is never
5583 called and the transfer is abruptly just abandoned early.
5584
5585 Test 1552 added to verify
5586
5587 Detected by OSS-fuzz
5588 Assisted-by: Max Dymond
5589 Closes #1954
5590
5591- [Benbuck Nason brought this change]
5592
5593 strtoofft: Remove extraneous null check
5594
5595 Fixes #1950: curlx_strtoofft() doesn't fully protect against null 'str'
5596 argument.
5597
5598 Closes #1952
5599
5600- openssl: fix build without HAVE_OPAQUE_EVP_PKEY
5601
5602 Reported-by: Javier Sixto
5603 Fixes #1955
5604 Closes #1956
5605
Elliott Hughescac39802018-04-27 16:19:43 -07005606Viktor Szakats (6 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01005607- lib/config-win32.h: let SMB/SMBS be enabled with OpenSSL/NSS
5608
5609 The source code is now prepared to handle the case when both
5610 Win32 Crypto and OpenSSL/NSS crypto backends are enabled
5611 at the same time, making it now possible to enable `USE_WIN32_CRYPTO`
5612 whenever the targeted Windows version supports it. Since this
5613 matches the minimum Windows version supported by curl
5614 (Windows 2000), enable it unconditionally for the Win32 platform.
5615
5616 This in turn enables SMB (and SMBS) protocol support whenever
5617 Win32 Crypto is available, regardless of what other crypto backends
5618 are enabled.
5619
5620 Ref: https://github.com/curl/curl/pull/1840#issuecomment-325682052
5621
5622 Closes https://github.com/curl/curl/pull/1943
5623
5624Daniel Stenberg (5 Oct 2017)
5625- build: fix --disable-crypto-auth
5626
5627 Reported-by: Wyatt O'Day
5628 Fixes #1945
5629 Closes #1947
5630
5631Jay Satiro (5 Oct 2017)
5632- [Nick Zitzmann brought this change]
5633
5634 darwinssl: add support for TLSv1.3
5635
5636 Closes https://github.com/curl/curl/pull/1794
5637
5638Daniel Stenberg (4 Oct 2017)
5639- [Felix Kaiser brought this change]
5640
5641 docs: fix typo in curl_mime_data_cb man page
5642
5643 Closes #1946
5644
Elliott Hughescac39802018-04-27 16:19:43 -07005645Viktor Szakats (4 Oct 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01005646- lib/Makefile.m32: allow customizing dll suffixes
5647
5648 - New `CURL_DLL_SUFFIX` envvar will add a suffix to the generated
5649 libcurl dll name. Useful to add `-x64` to 64-bit builds so that
5650 it can live in the same directory as the 32-bit one. By default
5651 this is empty.
5652
5653 - New `CURL_DLL_A_SUFFIX` envvar to customize the suffix of the
5654 generated import library (implib) for libcurl .dll. It defaults
5655 to `dll`, and it's useful to modify that to `.dll` to have the
5656 standard naming scheme for mingw-built .dlls, i.e. `libcurl.dll.a`.
5657
5658 Closes https://github.com/curl/curl/pull/1942
5659
5660Daniel Stenberg (4 Oct 2017)
5661- [Max Dymond brought this change]
5662
5663 fuzzer: move to using external curl-fuzzer
5664
5665 Use the external curl-fuzzer repository for fuzzing.
5666
5667 Closes #1923
5668
5669- failf: skip the sprintf() if there are no consumers
5670
5671 Closes #1936
5672
5673- ftp: UBsan fixup 'pointer index expression overflowed'
5674
5675 Closes #1939
5676
5677- RELEASE-PROCEDURE: update the release schedule
5678
5679Version 7.56.0 (4 Oct 2017)
5680
5681Daniel Stenberg (4 Oct 2017)
5682- RELEASE-NOTES: curl 7.56.0
5683
5684- THANKS: added new 7.56.0 contributors
5685
5686Jay Satiro (4 Oct 2017)
5687- build-openssl.bat: Warn OpenSSL 1.1.0 not yet supported
5688
5689 Ref: https://github.com/curl/curl/issues/1002
5690
5691Michael Kaufmann (3 Oct 2017)
5692- idn: fix source code comment
5693
5694- vtls: compare and clone ssl configs properly
5695
5696 Compare these settings in Curl_ssl_config_matches():
5697 - verifystatus (CURLOPT_SSL_VERIFYSTATUS)
5698 - random_file (CURLOPT_RANDOM_FILE)
5699 - egdsocket (CURLOPT_EGDSOCKET)
5700
5701 Also copy the setting "verifystatus" in Curl_clone_primary_ssl_config(),
5702 and copy the setting "sessionid" unconditionally.
5703
5704 This means that reusing connections that are secured with a client
5705 certificate is now possible, and the statement "TLS session resumption
5706 is disabled when a client certificate is used" in the old advisory at
5707 https://curl.haxx.se/docs/adv_20170419.html is obsolete.
5708
5709 Reviewed-by: Daniel Stenberg
5710
5711 Closes #1917
5712
5713- proxy: read the "no_proxy" variable only if necessary
5714
5715 Reviewed-by: Daniel Stenberg
5716
5717 Closes #1919
5718
5719Patrick Monnerat (3 Oct 2017)
5720- libcurl-tutorial: add casts in example to avoid compilation warnings.
5721
5722Daniel Stenberg (3 Oct 2017)
5723- examples: bring back curl_formadd-using examples
5724
5725 ... now with a -formadd suffix. While the new mime API is introduced in
5726 7.56.0 we must acknowledge that lots of users can't upgrade their curl
5727 versions immediately.
5728
5729- test1153: verify quoted double-qoutes in PWD response
5730
5731- FTP: zero terminate the entry path even on bad input
5732
5733 ... a single double quote could leave the entry path buffer without a zero
5734 terminating byte. CVE-2017-1000254
5735
5736 Test 1152 added to verify.
5737
5738 Reported-by: Max Dymond
5739 Bug: https://curl.haxx.se/docs/adv_20171004.html
5740
5741Jay Satiro (2 Oct 2017)
5742- [Sergei Nikulov brought this change]
5743
5744 cmake: disable tests and man generation if perl/nroff not found
5745
5746 Fixes https://github.com/curl/curl/issues/1500
5747 Reported-by: Jay Satiro
5748
5749 Fixes https://github.com/curl/curl/pull/1662
5750 Assisted-by: Tom Seddon
5751 Assisted-by: dpull@users.noreply.github.com
5752 Assisted-by: elelel@users.noreply.github.com
5753
5754 Closes https://github.com/curl/curl/pull/1924
5755
5756Patrick Monnerat (2 Oct 2017)
5757- libcurl-tutorial: fix two typos.
5758
5759- TODO: remove deprecated form API items.
5760
5761- libcurl-tutorial: describe MIME API and deprecate form API.
5762
5763 Include a guide to form/mime API conversion.
5764
5765Daniel Stenberg (30 Sep 2017)
5766- cookie: fix memory leak if path was set twice in header
5767
5768 ... this will let the second occurance override the first.
5769
5770 Added test 1161 to verify.
5771
5772 Reported-by: Max Dymond
5773 Fixes #1932
5774 Closes #1933
5775
5776Dan Fandrich (30 Sep 2017)
5777- test650: Use variable replacement to set the host address and port
5778
5779 Otherwise, the test fails when the -b test option is used to set a
5780 different test port range.
5781
5782- Set and use more necessary options when some protocols are disabled
5783
5784 When curl and libcurl are built with some protocols disabled, they stop
5785 setting and receiving some options that don't make sense with those
5786 protocols. In particular, when HTTP is disabled many options aren't set
5787 that are used only by HTTP. However, some options that appear to be
5788 HTTP-only are actually used by other protocols as well (some despite
5789 having HTTP in the name) and should be set, but weren't. This change now
5790 causes some of these options to be set and used for more (or for all)
5791 protocols. In particular, this fixes tests 646 through 649 in an
5792 HTTP-disabled build, which use the MIME API in the mail protocols.
5793
5794Daniel Stenberg (29 Sep 2017)
5795- test1160: verifies cookie leak for large cookies
5796
5797 The fix done in 20ea22ff735
5798
5799- cookie: fix memory leak on oversized rejection
5800
5801 Regression brought by 2bc230de63b
5802
5803 Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513
5804 Assisted-by: Max Dymond
5805
5806 Closes #1930
5807
5808- [Anders Bakken brought this change]
5809
5810 connect: fix race condition with happy eyeballs timeout
5811
5812 The timer should be started after conn->connecttime is set. Otherwise
5813 the timer could expire without this condition being true:
5814
5815 /* should we try another protocol family? */
5816 if(i == 0 && conn->tempaddr[1] == NULL &&
5817 curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
5818
5819 Ref: #1928
5820
5821Michael Kaufmann (28 Sep 2017)
5822- docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MS
5823
5824 Closes #1922
5825
5826- docs: clarify the use of environment variables for proxy
5827
5828 Closes #1921
5829
5830- http: add custom empty headers to repeated requests
5831
5832 Closes #1920
5833
5834- reuse_conn: don't copy flags that are known to be equal
5835
5836 A connection can only be reused if the flags "conn_to_host" and
5837 "conn_to_port" match. Therefore it is not necessary to copy these flags
5838 in reuse_conn().
5839
5840 Closes #1918
5841
5842Daniel Stenberg (27 Sep 2017)
5843- curl.h: include <sys/select.h> on cygwin too
5844
5845 When building with -std=c++14 on cygwin, this header won't be
5846 automatically included as it otherwise is.
5847
5848 The <sys/select.h> include decision should ideally be reversed and be
5849 avoided where that header file doesn't exist.
5850
5851 Reported-by: Ian Fette
5852 Fixes #1925
5853
5854- RELEASE-NOTES: synced with d8ab5dc50
5855
5856Michael Kaufmann (24 Sep 2017)
5857- tests: adjust .gitignore for new tests
5858
5859Jay Satiro (23 Sep 2017)
5860- ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM header
5861
5862 .. and include the core NTLM header in all NTLM-related source files.
5863
5864 Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT
5865 but did not include vtls.h where it was defined.
5866
5867 Closes https://github.com/curl/curl/pull/1911
5868
5869Daniel Stenberg (23 Sep 2017)
5870- file_range: avoid integer overflow when figuring out byte range
5871
5872 When trying to bump the value with one and the value is already at max,
5873 it causes an integer overflow.
5874
5875 Closes #1908
5876 Detected by oss-fuzz:
5877 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465
5878
5879 Assisted-by: Max Dymond
5880
5881Michael Kaufmann (23 Sep 2017)
5882- tests: fix a compiler warning in test 643
5883
5884Jay Satiro (23 Sep 2017)
5885- symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entry
5886
5887 - Use spaces instead of tabs as the delimiter.
5888
5889 Follow up to 7c52b12 which added the entry. The entry had used tabs but
5890 the symbol-scan parser doesn't recognize tabs and would fail the symbol.
5891
Elliott Hughescac39802018-04-27 16:19:43 -07005892Viktor Szakats (22 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01005893- metalink: fix NSS issue in MultiSSL builds
5894
5895 In MultiSSL mode (i.e. when more than one SSL backend is compiled
5896 in), we cannot use the compile time flag `USE_NSS` as indicator that
5897 the NSS backend is in use. As far as Metalink is concerned, the SSL
5898 backend is only used for MD5, SHA-1 and SHA-256 calculations,
5899 therefore one of the available SSL backends is selected at compile
5900 time, in a strict order of preference.
5901
5902 Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used
5903 to determine whether the SSL backend used for Metalink is the NSS
5904 backend, and use that to guard the code that wants to de-initialize
5905 the NSS-specific data structure.
5906
5907 Ref: https://github.com/curl/curl/pull/1848
5908
5909- ntlm: use strict order for SSL backend #if branches
5910
5911 With the recently introduced MultiSSL support multiple SSL backends
5912 can be compiled into cURL That means that now the order of the SSL
5913
5914 One option would be to use the same SSL backend as was configured
5915 via `curl_global_sslset()`, however, NTLMv2 support would appear
5916 to be available only with some SSL backends. For example, when
5917 eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced
5918 support for NTLMv1 using Windows' Crypt API, it specifically did
5919 *not* introduce NTLMv2 support using Crypt API at the same time.
5920
5921 So let's select one specific SSL backend for NTLM support when
5922 compiled with multiple SSL backends, using a priority order such
5923 that we support NTLMv2 even if only one compiled-in SSL backend can
5924 be used for that.
5925
5926 Ref: https://github.com/curl/curl/pull/1848
5927
5928Daniel Stenberg (22 Sep 2017)
5929- symbols-in-versions: add CURLSSLSET_NO_BACKENDS
5930
5931 ...fixup from b8e0fe19ec
5932
5933- imap: quote atoms properly when escaping characters
5934
5935 Updates test 800 to verify
5936
5937 Fixes #1902
5938 Closes #1903
5939
5940- tests: make the imap server not verify user+password
5941
5942 ... as the test cases themselves do that and it makes it easier to add
5943 crazy test cases.
5944
5945 Test 800 updated to use user name + password that need quoting.
5946
5947 Test 856 updated to trigger an auth fail differently.
5948
5949 Ref: #1902
5950
5951- vtls: provide curl_global_sslset() even in non-SSL builds
5952
5953 ... it just returns error:
5954
5955 Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367
5956 Reported-by: Marcel Raad
5957
5958 Closes #1906
5959
5960Patrick Monnerat (22 Sep 2017)
5961- form/mime: field names are not allowed to contain zero-valued bytes.
5962
5963 Also suppress length argument of curl_mime_name() (names are always
5964 zero-terminated).
5965
5966Daniel Stenberg (21 Sep 2017)
5967- [Dirk Feytons brought this change]
5968
5969 openssl: only verify RSA private key if supported
5970
5971 In some cases the RSA key does not support verifying it because it's
5972 located on a smart card, an engine wants to hide it, ...
5973 Check the flags on the key before trying to verify it.
5974 OpenSSL does the same thing internally; see ssl/ssl_rsa.c
5975
5976 Closes #1904
5977
5978Marcel Raad (21 Sep 2017)
5979- examples/post-callback: use long for CURLOPT_POSTFIELDSIZE
5980
5981 Otherwise, typecheck-gcc.h warns on MinGW-w64.
5982
5983Patrick Monnerat (20 Sep 2017)
5984- mime: rephrase the multipart output state machine (#1898) ...
5985
5986 ... in hope coverity will like it much.
5987
5988- mime: fix an explicit null dereference (#1899)
5989
5990Daniel Stenberg (20 Sep 2017)
5991- curl: check fseek() return code and bail on error
5992
5993 Detected by coverity. CID 1418137.
5994
5995- smtp: fix memory leak in OOM
5996
5997 Regression since ce0881edee
5998
5999 Coverity CID 1418139 and CID 1418136 found it, but it was also seen in
6000 torture testing.
6001
6002- RELEASE-NOTES: synced with 5fe85587c
6003
Elliott Hughes0128fe42018-02-27 14:57:55 -08006004- [Pavel Pavlov brought this change]
Alex Deymo486467e2017-12-19 19:04:07 +01006005
6006 cookies: use lock when using CURLINFO_COOKIELIST
6007
6008 Closes #1896
6009
6010- [Max Dymond brought this change]
6011
6012 ossfuzz: changes before merging the generated corpora
6013
6014 Before merging in the oss-fuzz corpora from Google, there are some changes
6015 to the fuzzer.
6016 - Add a read corpus script, to display corpus files nicely.
6017 - Change the behaviour of the fuzzer so that TLV parse failures all now
6018 go down the same execution paths, which should reduce the size of the
6019 corpora.
6020 - Make unknown TLVs a failure to parse, which should decrease the size
6021 of the corpora as well.
6022
6023 Closes #1881
6024
6025- mime:escape_string minor clarification change
6026
6027 ... as it also removes a warning with old gcc versions.
6028
6029 Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html
6030 Reported-by: Ben Greear
6031
6032- [Max Dymond brought this change]
6033
6034 ossfuzz: don't write out to stdout
6035
6036 Don't make the fuzzer write out to stdout - instead write some of the
6037 contents to a memory block so we exercise the data output code but
6038 quietly.
6039
6040 Closes #1885
6041
6042- cookies: reject oversized cookies
6043
6044 ... instead of truncating them.
6045
6046 There's no fixed limit for acceptable cookie names in RFC 6265, but the
6047 entire cookie is said to be less than 4096 bytes (section 6.1). This is
6048 also what browsers seem to implement.
6049
6050 We now allow max 5000 bytes cookie header. Max 4095 bytes length per
6051 cookie name and value. Name + value together may not exceed 4096 bytes.
6052
6053 Added test 1151 to verify
6054
6055 Bug: https://curl.haxx.se/mail/lib-2017-09/0062.html
6056 Reported-by: Kevin Smith
6057
6058 Closes #1894
6059
6060- travis: on mac, don't install openssl or libidn
6061
6062 - openssl is already installed and causes warnings when trying to
6063 install again
6064
6065 - libidn isn't used these days, and homebrew doesn't seem to have a
6066 libidn2 package to replace with easily
6067
6068 Closes #1895
6069
6070- curl: make str2udouble not return values on error
6071
6072 ... previously it would store a return value even when it returned
6073 error, which could make the value get used anyway!
6074
6075 Reported-by: Brian Carpenter
6076 Closes #1893
6077
6078Jay Satiro (18 Sep 2017)
6079- socks: fix incorrect port number in SOCKS4 error message
6080
6081 Prior to this change it appears the SOCKS5 port parsing was erroneously
6082 used for the SOCKS4 error message, and as a result an incorrect port
6083 would be shown in the error message.
6084
6085 Bug: https://github.com/curl/curl/issues/1892
6086 Reported-by: Jackarain@users.noreply.github.com
6087
6088- [Marc Aldorasi brought this change]
6089
6090 schannel: Support partial send for when data is too large
6091
6092 Schannel can only encrypt a certain amount of data at once. Instead of
6093 failing when too much data is to be sent at once, send as much data as
6094 we can and let the caller send the remaining data by calling send again.
6095
6096 Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html
6097
6098 Closes https://github.com/curl/curl/pull/1890
6099
6100- [David Benjamin brought this change]
6101
6102 openssl: add missing includes
6103
6104 lib/vtls/openssl.c uses OpenSSL APIs from BUF_MEM and BIO APIs. Include
6105 their headers directly rather than relying on other OpenSSL headers
6106 including things.
6107
6108 Closes https://github.com/curl/curl/pull/1891
6109
6110Daniel Stenberg (15 Sep 2017)
6111- conversions: fix several compiler warnings
6112
6113- server/getpart: provide dummy function to build conversion enabled
6114
6115- non-ascii: use iconv() with 'char **' argument
6116
6117 Bug: https://curl.haxx.se/mail/lib-2017-09/0031.html
6118
6119- escape.c: error: pointer targets differ in signedness
6120
6121- docs: clarify the CURLOPT_INTERLEAVE* options behavior
6122
6123- [Max Dymond brought this change]
6124
6125 rtsp: Segfault in rtsp.c when using WRITEDATA
6126
6127 If the INTERLEAVEFUNCTION is defined, then use that plus the
6128 INTERLEAVEDATA information when writing RTP. Otherwise, use
6129 WRITEFUNCTION and WRITEDATA.
6130
6131 Fixes #1880
6132 Closes #1884
6133
6134Marcel Raad (15 Sep 2017)
6135- [Isaac Boukris brought this change]
6136
6137 tests: enable gssapi in travis-ci linux build
6138
6139 Closes https://github.com/curl/curl/pull/1687
6140
6141- [Isaac Boukris brought this change]
6142
6143 tests: add initial gssapi test using stub implementation
6144
6145 The stub implementation is pre-loaded using LD_PRELOAD
6146 and emulates common gssapi uses (only builds if curl is
6147 initially built with gssapi support).
6148
6149 The initial tests are currently disabled for debug builds
6150 as LD_PRELOAD is not used then.
6151
6152 Ref: https://github.com/curl/curl/pull/1687
6153
6154Daniel Stenberg (15 Sep 2017)
6155- test1150: verify same host fetch using different ports over proxy
6156
6157 Closes #1889
6158
6159- URL: on connection re-use, still pick the new remote port
6160
6161 ... as when a proxy connection is being re-used, it can still get a
6162 different remote port.
6163
6164 Fixes #1887
6165 Reported-by: Oli Kingshott
6166
6167- RELEASE-NOTES: synced with 87501e57f
6168
6169- code style: remove wrong uses of multiple spaces
6170
6171 Closes #1878
6172
6173- checksrc: detect and warn for multiple spaces
6174
6175- code style: use space after semicolon
6176
6177- checksrc: verify space after semicolons
6178
6179- code style: use spaces around pluses
6180
6181- checksrc: detect and warn for lack of spaces next to plus signs
6182
6183- code style: use spaces around equals signs
6184
6185- checksrc: verify spaces around equals signs
6186
6187 ... as the code style mandates.
6188
6189- Curl_checkheaders: make it available for IMAP and SMTP too
6190
6191 ... not only HTTP uses this now.
6192
6193 Closes #1875
6194
6195- travis: add build without HTTP/SMTP/IMAP
6196
6197Jay Satiro (10 Sep 2017)
6198- mbedtls: enable CA path processing
6199
6200 CA path processing was implemented when mbedtls.c was added to libcurl
6201 in fe7590f, but it was never enabled.
6202
6203 Bug: https://github.com/curl/curl/issues/1877
6204 Reported-by: SBKarr@users.noreply.github.com
6205
6206Daniel Stenberg (8 Sep 2017)
6207- rtsp: do not call fwrite() with NULL pointer FILE *
6208
6209 If the default write callback is used and no destination has been set, a
6210 NULL pointer would be passed to fwrite()'s 4th argument.
6211
6212 OSS-fuzz bug https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3327
6213 (not publicly open yet)
6214
6215 Detected by OSS-fuzz
6216 Closes #1874
6217
6218- configure: use -Wno-varargs on clang 3.9[.X] debug builds
6219
6220 ... to avoid a clang bug
6221
6222- [Max Dymond brought this change]
6223
6224 ossfuzz: add some more handled CURL options
6225
6226 Add support for HEADER, COOKIE, RANGE, CUSTOMREQUEST, MAIL_RECIPIENT,
6227 MAIL_FROM and uploading data.
6228
6229- configure: check for C++ compiler after C, to make it non-fatal
6230
6231 The tests for object file/executable file extensions are presumably only
6232 done for the first of these macros in the configure file.
6233
6234 Bug: https://github.com/curl/curl/pull/1851#issuecomment-327597515
6235 Reported-by: Marcel Raad
6236 Closes #1873
6237
6238Patrick Monnerat (7 Sep 2017)
6239- form API: add new test 650.
6240
6241 Now that the form API is deprecated and not used anymore in curl tool,
6242 a lot of its features left untested. Test 650 attempts to check all these
6243 features not tested elsewhere.
6244
6245Jay Satiro (7 Sep 2017)
6246- configure: fix curl_off_t check's include order
6247
6248 - Prepend srcdir include path instead of append.
6249
6250 Prior to this change it was possible that during the check for the size
6251 of curl_off_t the include path of a user's already installed curl could
6252 come before the include path of the to-be-built curl, resulting in the
6253 system.h of the former being incorrectly included for that check.
6254
6255 Closes https://github.com/curl/curl/pull/1870
6256
6257Daniel Stenberg (7 Sep 2017)
6258- [Jakub Zakrzewski brought this change]
6259
6260 KNOWN_BUGS: Remove CMake symbol hiding issue
6261
6262 It has already been fixed in 6140dfc
6263
6264- http-proxy: when not doing CONNECT, that phase is done immediately
6265
6266 `conn->connect_state` is NULL when doing a regular non-CONNECT request
6267 over the proxy and should therefor be considered complete at once.
6268
6269 Fixes #1853
6270 Closes #1862
6271 Reported-by: Lawrence Wagerfield
6272
6273- [Johannes Schindelin brought this change]
6274
6275 OpenSSL: fix yet another mistake while encapsulating SSL backend data
6276
6277 Another mistake in my manual fixups of the largely mechanical
6278 search-and-replace ("connssl->" -> "BACKEND->"), just like the previous
6279 commit concerning HTTPS proxies (and hence not caught during my
6280 earlier testing).
6281
6282 Fixes #1855
6283 Closes #1871
6284
6285 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6286
6287- [Johannes Schindelin brought this change]
6288
6289 OpenSSL: fix erroneous SSL backend encapsulation
6290
6291 In d65e6cc4f (vtls: prepare the SSL backends for encapsulated private
6292 data, 2017-06-21), this developer prepared for a separation of the
6293 private data of the SSL backends from the general connection data.
6294
6295 This conversion was partially automated (search-and-replace) and
6296 partially manual (e.g. proxy_ssl's backend data).
6297
6298 Sadly, there was a crucial error in the manual part, where the wrong
6299 handle was used: rather than connecting ssl[sockindex]' BIO to the
6300 proxy_ssl[sockindex]', we reconnected proxy_ssl[sockindex]. The reason
6301 was an incorrect location to paste "BACKEND->"... d'oh.
6302
6303 Reported by Jay Satiro in https://github.com/curl/curl/issues/1855.
6304
6305 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6306
6307- [Jay Satiro brought this change]
6308
6309 vtls: fix memory corruption
6310
6311 Ever since 70f1db321 (vtls: encapsulate SSL backend-specific data,
6312 2017-07-28), the code handling HTTPS proxies was broken because the
6313 pointer to the SSL backend data was not swapped between
6314 conn->ssl[sockindex] and conn->proxy_ssl[sockindex] as intended, but
6315 instead set to NULL (causing segmentation faults).
6316
6317 [jes: provided the commit message, tested and verified the patch]
6318
6319 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6320
6321- vtls: switch to CURL_SHA256_DIGEST_LENGTH define
6322
6323 ... instead of the prefix-less version since WolfSSL 3.12 now uses an
6324 enum with that name that causes build failures for us.
6325
6326 Fixes #1865
6327 Closes #1867
6328 Reported-by: Gisle Vanem
6329
6330- travis: add c-ares enabled builds linux + osx
6331
6332 Closes #1868
6333
6334- HISTORY: added some recent items
6335
6336Jay Satiro (6 Sep 2017)
6337- SSL: fix unused parameter warnings
6338
6339Patrick Monnerat (6 Sep 2017)
6340- mime: drop internal FILE * support.
6341
6342 - The part kind MIMEKIND_FILE and associated code are suppressed.
6343 - Seek data origin offset not used anymore: suppressed.
6344 - MIMEKIND_NAMEDFILE renamed MIMEKIND_FILE; associated fields/functions
6345 renamed accordingly.
6346 - Curl_getformdata() processes stdin via a callback.
6347
6348Daniel Stenberg (6 Sep 2017)
6349- configure: remove --enable-soname-bump and SONAME_BUMP
6350
6351 Back in 2008, (and commit 3f3d6ebe665f3) we changed the logic in how we
6352 determine the native type for `curl_off_t`. To really make sure we
6353 didn't break ABI without bumping SONAME, we introduced logic that
6354 attempted to detect that it would use a different size and thus not be
6355 compatible. We also provided a manual switch that allowed users to tell
6356 configure to bump SONAME by force.
6357
6358 Today, we know of no one who ever got a SONAME bump auto-detected and we
6359 don't know of anyone who's using the manual bump feature. The auto-
6360 detection is also no longer working since we introduced defining
6361 curl_off_t in system.h (7.55.0).
6362
6363 Finally, this bumping logic is not present in the cmake build.
6364
6365 Closes #1861
6366
6367Jay Satiro (6 Sep 2017)
6368- [Gisle Vanem brought this change]
6369
6370 vtls: select ssl backend case-insensitive (follow-up)
6371
6372 - Do a case-insensitive comparison of CURL_SSL_BACKEND env as well.
6373
6374 - Change Curl_strcasecompare calls to strcasecompare
6375 (maps to the former but shorter).
6376
6377 Follow-up to c290b8f.
6378
6379 Bug: https://github.com/curl/curl/commit/c290b8f#commitcomment-24094313
6380
6381 Co-authored-by: Jay Satiro
6382
6383- openssl: Integrate Peter Wu's SSLKEYLOGFILE implementation
6384
6385 This is an adaptation of 2 of Peter Wu's SSLKEYLOGFILE implementations.
6386
6387 The first one, written for old OpenSSL versions:
6388 https://git.lekensteyn.nl/peter/wireshark-notes/tree/src/sslkeylog.c
6389
6390 The second one, written for BoringSSL and new OpenSSL versions:
6391 https://github.com/curl/curl/pull/1346
6392
6393 Note the first one is GPL licensed but the author gave permission to
6394 waive that license for libcurl.
6395
6396 As of right now this feature is disabled by default, and does not have
6397 a configure option to enable it. To enable this feature define
6398 ENABLE_SSLKEYLOGFILE when building libcurl and set environment
6399 variable SSLKEYLOGFILE to a pathname that will receive the keys.
6400
6401 And in Wireshark change your preferences to point to that key file:
6402 Edit > Preferences > Protocols > SSL > Master-Secret
6403
6404 Co-authored-by: Peter Wu
6405
6406 Ref: https://github.com/curl/curl/pull/1030
6407 Ref: https://github.com/curl/curl/pull/1346
6408
6409 Closes https://github.com/curl/curl/pull/1866
6410
6411Patrick Monnerat (5 Sep 2017)
6412- mime: fix a trivial warning.
6413
6414- mime: replace 'struct Curl_mimepart' by 'curl_mimepart' in encoder code.
6415
6416 mime_state is now a typedef.
6417
6418- mime: implement encoders.
6419
6420 curl_mime_encoder() is operational and documented.
6421 curl tool -F option is extended with ";encoder=".
6422 curl tool --libcurl option generates calls to curl_mime_encoder().
6423 New encoder tests 648 & 649.
6424 Test 1404 extended with an encoder specification.
6425
6426- runtests.pl: support attribute "nonewline" in part verify/upload.
6427
6428- [Daniel Stenberg brought this change]
6429
6430 fixup data/test1135
6431
6432- [Daniel Stenberg brought this change]
6433
6434 mime: unified to use the typedef'd mime structs everywhere
6435
6436 ... and slightly edited to follow our code style better.
6437
6438- [Daniel Stenberg brought this change]
6439
6440 curl.h: use lower case curl_mime* as for all public symbols
6441
6442- [Daniel Stenberg brought this change]
6443
6444 docs/curl_mime_*.3: use correct variable types in examples
6445
6446Kamil Dudka (5 Sep 2017)
6447- openssl: use OpenSSL's default ciphers by default
6448
6449 Up2date versions of OpenSSL maintain the default reasonably secure
6450 without breaking compatibility, so it is better not to override the
6451 default by curl. Suggested at https://bugzilla.redhat.com/1483972
6452
6453 Closes #1846
6454
Elliott Hughescac39802018-04-27 16:19:43 -07006455Viktor Szakats (5 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01006456- examples/mime: minor example code fixes
6457
6458Daniel Stenberg (5 Sep 2017)
6459- docs/curl_mime_*.3: added examples
6460
6461- configure: add MultiSSL to FEATURES when enabled
6462
6463 ...for curl-config and its corresponding test 1014
6464
6465- http-proxy: treat all 2xx as CONNECT success
6466
6467 Added test 1904 to verify.
6468
6469 Reported-by: Lawrence Wagerfield
6470 Fixes #1859
6471 Closes #1860
6472
6473- MAIL-ETIQUETTE: added "1.9 Your emails are public"
6474
6475- curl.h: fix "unused checksrc ignore", remove dangling reference
6476
6477 ... to a README file that doesn't exist anymore
6478
Elliott Hughescac39802018-04-27 16:19:43 -07006479Viktor Szakats (4 Sep 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01006480- docs: Update to secure URL versions
6481
6482- mime: use CURL_ZERO_TERMINATED in examples
6483
6484 and some minor whitespace fixes
6485
6486Daniel Stenberg (4 Sep 2017)
6487- schannel: return CURLE_SSL_CACERT on failed verification
6488
6489 ... not *CACERT_BADFILE as it isn't really because of a bad file.
6490
6491 Bug: https://curl.haxx.se/mail/lib-2017-09/0002.html
6492 Closes #1858
6493
6494- test1135: fixed after bd8070085f9
6495
6496- examples/post-callback: stop returning one byte at a time
6497
6498 ... since people copy and paste code from this example and thus they get
6499 an inefficient POST operation without a good reason and sometimes
6500 without understanding why.
6501
6502 Instead this now returns as much data as possible.
6503
6504- RELEASE-NOTES: fixed the function counter script
6505
6506- curl.h: make the curl_strequal() protos use the same style
6507
6508 ... as the other functions. Makes it easier to machine-parse!
6509
6510- docs: curl_mime_*.3 man page formatting edits
6511
6512- RELEASE-NOTES: synced with 1ab9e9b50
6513
6514Patrick Monnerat (4 Sep 2017)
6515- lib: bump version info (soname). Adapt and reenable test 1135.
6516
6517Daniel Stenberg (3 Sep 2017)
6518- headers: move the global_sslset() proto from multi.h to curl.h
6519
6520 As it was added to multi.h simply to not break test 1135, which now has
6521 been disabled due to the mime API addition anyway and su we can now move
6522 the sslset stuff to where the other curl_global_* prototypes are.
6523
6524Patrick Monnerat (3 Sep 2017)
6525- mime: fix signed/unsigned conversions.
6526
6527 Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
6528
6529Jay Satiro (3 Sep 2017)
6530- tool_formparse: fix some trivial warnings
6531
6532Patrick Monnerat (3 Sep 2017)
6533- mime: use size_t instead of ssize_t in public API interface.
6534
6535 To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED
6536 has been introduced.
6537
6538 Documentation updated accordingly.
6539
6540 symbols in versions updated. Added form API symbols deprecation info.
6541
6542- mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().
6543
6544 This feature is badly supported in Windows: as a replacement, a caller has
6545 to use curl_mime_data_cb() with fread, fseek and possibly fclose
6546 callbacks to process opened files.
6547
6548 The cli tool and documentation are updated accordingly.
6549
6550 The feature is however kept internally for form API compatibility, with
6551 the known caveats it always had.
6552
6553 As a side effect, stdin size is not determined by the cli tool even if
6554 possible and this results in a chunked transfer encoding. Test 173 is
6555 updated accordingly.
6556
6557- mime: fix some implicit curl_off_t --> size_t conversion warnings.
6558
6559- mime: tests and examples.
6560
6561 Additional mime-specific tests.
6562 Existing tests updated to reflect small differences (Expect: 100-continue,
6563 data size change due to empty lines, etc).
6564 Option -F headers= keyword added to tests.
6565 test1135 disabled until the entry point order change is resolved.
6566 New example smtp-mime.
6567 Examples postit2 and multi-post converted from form API to mime API.
6568
6569- mime: use in curl cli tool instead of form API.
6570
6571 Extended -F option syntax to support multipart mail messages.
6572 -F keyword headers= added to include custom headers in parts.
6573 Documentation upgraded.
6574
6575- mime: new MIME API.
6576
6577 Available in HTTP, SMTP and IMAP.
6578 Deprecates the FORM API.
6579 See CURLOPT_MIMEPOST.
6580 Lib code and associated documentation.
6581
6582- test564: Add a warning comment about shell profile output.
6583
6584 Shell profile output makes the SSH server failing and this problem reason
6585 is not easy to find when no hint is given.
6586
6587- checksrc: disable SPACEBEFOREPAREN for case statement.
6588
6589 The case keyword may be followed by a constant expression and thus should
6590 allow it to start with an open parenthesis.
6591
6592- runtests.pl: allow <file[1-4]> tags in client section.
6593
6594 This enables tests to create more than one file on the client side.
6595
6596- runtests.pl: Apply strippart to upload too.
6597
6598 This will allow substitution of boundaries in mail messages.
6599
6600- Curl_base64_encode: always call with a real data handle.
6601
6602 Some calls in different modules were setting the data handle to NULL, causing
6603 segmentation faults when using builds that enable character code conversions.
6604
6605- non-ascii: allow conversion functions to be called with a NULL data handle.
6606
6607- http: fix a memory leakage in checkrtspprefix().
6608
6609Daniel Stenberg (2 Sep 2017)
6610- [Max Dymond brought this change]
6611
6612 ossfuzz: Move to C++ for curl_fuzzer.
6613
6614 Automake gets confused if you want to use C++ static libraries with C
6615 code - basically we need to involve the clang++ linker. The easiest way
6616 of achieving this is to rename the C code as C++ code. This gets us a
6617 bit further along the path and ought to be compatible with Google's
6618 version of clang.
6619
6620- curl_global_sslset: select backend by name case insensitively
6621
6622 Closes #1849
6623
6624- [Max Dymond brought this change]
6625
6626 ossfuzz: additional seed corpora
6627
6628 Create simple seed corpora for:
6629 - FTP
6630 - telnet
6631 - dict
6632 - tftp
6633 - imap
6634 - pop3
6635
6636 based off the tests of the same number.
6637
6638 Closes #1842
6639
6640- [Max Dymond brought this change]
6641
6642 ossfuzz: moving towards the ideal integration
6643
6644 - Start with the basic code from the ossfuzz project.
6645 - Rewrite fuzz corpora to be binary files full of Type-Length-Value
6646 data, and write a glue layer in the fuzzing function to convert
6647 corpora into CURL options.
6648 - Have supporting functions to generate corpora from existing tests
6649 - Integrate with Makefile.am
6650
6651- strcase: corrected comment header for Curl_strcasecompare()
6652
6653- unit1301: fix error message on first test
6654
6655- curl_global_sslset.3: show the struct and enum too
6656
6657 ... so that users can actually write code based on the man page alone,
6658 not having to read the header file.
6659
6660Jay Satiro (31 Aug 2017)
6661- darwinssl: handle long strings in TLS certs (follow-up)
6662
6663 - Fix handling certificate subjects that are already UTF-8 encoded.
6664
6665 Follow-up to b3b75d1 from two days ago. Since then a copy would be
6666 skipped if the subject was already UTF-8, possibly resulting in a NULL
6667 deref later on.
6668
6669 Ref: https://github.com/curl/curl/issues/1823
6670 Ref: https://github.com/curl/curl/pull/1831
6671
6672 Closes https://github.com/curl/curl/pull/1836
6673
6674Daniel Stenberg (31 Aug 2017)
6675- cyassl: call it the "WolfSSL" backend
6676
6677 ... instead of cyassl, as this is the current name for it.
6678
6679 Closes #1844
6680
6681- polarssl: fix multissl breakage
6682
6683 Reported-by: Dan Fandrich
6684 Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html
6685 Closes #1843
6686
6687- configure: remove the leading comma from the backends list
6688
6689 ... when darwinssl is used.
6690
6691 Reported-by: Viktor Szakats
6692 Bug: https://github.com/curl/curl/commit/b0989cd3abaff4f9a0717b4875022fa79e33b481#commitcomment-23943493
6693
6694 Closes #1845
6695
6696Kamil Dudka (30 Aug 2017)
6697- examples/sslbackend.c: fix failure of 'make checksrc'
6698
6699 ./sslbackend.c:58:3: warning: else after closing brace on same line (BRACEELSE)
6700 } else if(isdigit(*name)) {
6701 ^
6702 ./sslbackend.c:62:3: warning: else after closing brace on same line (BRACEELSE)
6703 } else
6704 ^
6705
Elliott Hughescac39802018-04-27 16:19:43 -07006706Viktor Szakats (30 Aug 2017)
Alex Deymo486467e2017-12-19 19:04:07 +01006707- makefile.m32: add multissl support
6708
6709 Closes https://github.com/curl/curl/pull/1840
6710
6711Daniel Stenberg (30 Aug 2017)
6712- curl.h: CURLSSLBACKEND_WOLFSSL used wrong value
6713
6714 The CURLSSLBACKEND_WOLFSSL is supposed to be an alias for
6715 CURLSSLBACKEND_CYASSL, but used an erronous value. To reduce the risk
6716 for a similar mistake, define the backend aliases to use the enum values
6717 instead.
6718
6719 Reported-by: Gisle Vanem
6720 Bug: https://curl.haxx.se/mail/lib-2017-08/0120.html
6721
6722- curl_global_sslset.3: clarify
6723
6724 it is a one time *set*, not necessarily a one time use... it can be
6725 called again if the first call failed or just listed the alternatives.
6726
6727 clarify that the available backends are the ones this build supports
6728
6729 plus add some formatting
6730
6731 Reported-by: Rich Gray
6732 Bug: https://curl.haxx.se/mail/lib-2017-08/0119.html
6733
6734- curl/multi.h: remove duplicated closing c++ brace
6735
6736 Regression since 1328f69d53f2f2e93
6737
6738 Fixes #1841
6739 Reported-by: Andrei Karas
6740
6741- RELEASE-NOTES: synced with 8c33c963a
6742
6743- HELP-US.md: spelling
6744
6745- HELP-US.md: "How to get started helping out in the curl project"
6746
6747 Closes #1837
6748
6749Dan Fandrich (29 Aug 2017)
6750- asyn-thread: Fixed cleanup after OOM
6751
6752 destroy_async_data() assumes that if the flag "done" is not set yet, the
6753 thread itself will clean up once the request is complete. But if an
6754 error (generally OOM) occurs before the thread even has a chance to
6755 start, it will never get a chance to clean up and memory will be leaked.
6756 By clearing "done" only just before starting the thread, the correct
6757 cleanup sequence will happen in all cases.
6758
6759Daniel Stenberg (28 Aug 2017)
6760- curl_global_init.3: mention curl_global_sslset(3)
6761
6762Dan Fandrich (28 Aug 2017)
6763- unit1606: Fixed shadowed variable warning
6764
6765- asyn-thread: Improved cleanup after OOM situations
6766
6767- asyn-thread: Set errno to the proper value ENOMEM in OOM situation
6768
6769 This used to be set in some configurations to EAI_MEMORY which is not a
6770 valid value for errno and caused Curl_strerror to fail an assertion.
6771
6772Daniel Stenberg (28 Aug 2017)
6773- [Johannes Schindelin brought this change]
6774
6775 configure: Handle "MultiSSL" specially When versioning symbols
6776
6777 There is a mode in which libcurl is compiled with versioned symbols,
6778 depending on the active SSL backend.
6779
6780 When multiple SSL backends are active, it does not make sense to favor
6781 one over the others, so let's not: introduce a new prefix for the case
6782 where multiple SSL backends are compiled into cURL.
6783
6784 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6785
6786- [Johannes Schindelin brought this change]
6787
6788 configure: allow setting the default SSL backend
6789
6790 Previously, we used as default SSL backend whatever was first in the
6791 `available_backends` array.
6792
6793 However, some users may want to override that default without patching
6794 the source code.
6795
6796 Now they can: with the --with-default-ssl-backend=<backend> option of
6797 the ./configure script.
6798
6799 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6800
6801- [Johannes Schindelin brought this change]
6802
6803 vtls: use Curl_ssl_multi pseudo backend only when needed
6804
6805 When only one SSL backend is configured, it is totally unnecessary to
6806 let multissl_init() configure the backend at runtime, we can select the
6807 correct backend at build time already.
6808
6809 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6810
6811- [Johannes Schindelin brought this change]
6812
6813 version: if built with more than one SSL backend, report all of them
6814
6815 To discern the active one from the inactive ones, put the latter into
6816 parentheses.
6817
6818 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6819
6820- [Johannes Schindelin brought this change]
6821
6822 version: add the CURL_VERSION_MULTI_SSL feature flag
6823
6824 This new feature flag reports When cURL was built with multiple SSL
6825 backends.
6826
6827 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6828
6829- [Johannes Schindelin brought this change]
6830
6831 metalink: allow compiling with multiple SSL backends
6832
6833 Previously, the code assumed that at most one of the SSL backends would
6834 be compiled in, emulating OpenSSL's functions if the configured backend
6835 was not OpenSSL itself.
6836
6837 However, now we allow building with multiple SSL backends and choosing
6838 one at runtime. Therefore, metalink needs to be adjusted to handle this
6839 scenario, too.
6840
6841 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6842
6843- [Johannes Schindelin brought this change]
6844
6845 docs/examples: demonstrate how to select SSL backends
6846
6847 The newly-introduced curl_global_sslset() function deserves to be
6848 show-cased.
6849
6850 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6851
6852- [Johannes Schindelin brought this change]
6853
6854 Add a man page for curl_global_sslset()
6855
6856 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6857
6858- [Johannes Schindelin brought this change]
6859
6860 vtls: introduce curl_global_sslset()
6861
6862 Let's add a compile time safe API to select an SSL backend. This
6863 function needs to be called *before* curl_global_init(), and can be
6864 called only once.
6865
6866 Side note: we do not explicitly test that it is called before
6867 curl_global_init(), but we do verify that it is not called multiple times
6868 (even implicitly).
6869
6870 If SSL is used before the function was called, it will use whatever the
6871 CURL_SSL_BACKEND environment variable says (or default to the first
6872 available SSL backend), and if a subsequent call to
6873 curl_global_sslset() disagrees with the previous choice, it will fail
6874 with CURLSSLSET_TOO_LATE.
6875
6876 The function also accepts an "avail" parameter to point to a (read-only)
6877 NULL-terminated list of available backends. This comes in real handy if
6878 an application wants to let the user choose between whatever SSL backends
6879 the currently available libcurl has to offer: simply call
6880
6881 curl_global_sslset(-1, NULL, &avail);
6882
6883 which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail
6884 variable to point to the relevant information to present to the user.
6885
6886 Just like with the HTTP/2 push functions, we have to add the function
6887 declaration of curl_global_sslset() function to the header file
6888 *multi.h* because VMS and OS/400 require a stable order of functions
6889 declared in include/curl/*.h (where the header files are sorted
6890 alphabetically). This looks a bit funny, but it cannot be helped.
6891
6892 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6893
6894- [Johannes Schindelin brought this change]
6895
6896 vtls: refactor out essential information about the SSL backends
6897
6898 There is information about the compiled-in SSL backends that is really
6899 no concern of any code other than the SSL backend itself, such as which
6900 function (if any) implements SHA-256 summing.
6901
6902 And there is information that is really interesting to the user, such as
6903 the name, or the curl_sslbackend value.
6904
6905 Let's factor out the latter into a publicly visible struct. This
6906 information will be used in the upcoming API to set the SSL backend
6907 globally.
6908
6909 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6910
6911- [Johannes Schindelin brought this change]
6912
6913 vtls: allow selecting which SSL backend to use at runtime
6914
6915 When building software for the masses, it is sometimes not possible to
6916 decide for all users which SSL backend is appropriate.
6917
6918 Git for Windows, for example, uses cURL to perform clones, fetches and
6919 pushes via HTTPS, and some users strongly prefer OpenSSL, while other
6920 users really need to use Secure Channel because it offers
6921 enterprise-ready tools to manage credentials via Windows' Credential
6922 Store.
6923
6924 The current Git for Windows versions use the ugly work-around of
6925 building libcurl once with OpenSSL support and once with Secure Channel
6926 support, and switching out the binaries in the installer depending on
6927 the user's choice.
6928
6929 Needless to say, this is a super ugly workaround that actually only
6930 works in some cases: Git for Windows also comes in a portable form, and
6931 in a form intended for third-party applications requiring Git
6932 functionality, in which cases this "swap out libcurl-4.dll" simply is
6933 not an option.
6934
6935 Therefore, the Git for Windows project has a vested interest in teaching
6936 cURL to make the SSL backend a *runtime* option.
6937
6938 This patch makes that possible.
6939
6940 By running ./configure with multiple --with-<backend> options, cURL will
6941 be built with multiple backends.
6942
6943 For the moment, the backend can be configured using the environment
6944 variable CURL_SSL_BACKEND (valid values are e.g. "openssl" and
6945 "schannel").
6946
6947 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6948
6949- [Johannes Schindelin brought this change]
6950
6951 vtls: fold the backend ID into the Curl_ssl structure
6952
6953 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6954
6955- [Johannes Schindelin brought this change]
6956
6957 curl_ntlm_core: don't complain but #include OpenSSL header if needed
6958
6959 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
6960
6961- [Johannes Schindelin brought this change]
6962
6963 vtls: encapsulate SSL backend-specific data
6964
6965 So far, all of the SSL backends' private data has been declared as
6966 part of the ssl_connect_data struct, in one big #if .. #elif .. #endif
6967 block.
6968
6969 This can only work as long as the SSL backend is a compile-time option,
6970 something we want to change in the next commits.
6971
6972 Therefore, let's encapsulate the exact data needed by each SSL backend
6973 into a private struct, and let's avoid bleeding any SSL backend-specific
6974 information into urldata.h. This is also necessary to allow multiple SSL
6975 backends to be compiled in at the same time, as e.g. OpenSSL's and
6976 CyaSSL's headers cannot be included in the same .c file.
6977
6978 To avoid too many malloc() calls, we simply append the private structs
6979 to the connectdata struct in allocate_conn().
6980
6981 This requires us to take extra care of alignment issues: struct fields
6982 often need to be aligned on certain boundaries e.g. 32-bit values need to
6983 be stored at addresses that divide evenly by 4 (= 32 bit / 8
6984 bit-per-byte).
6985
6986 We do that by assuming that no SSL backend's private data contains any
6987 fields that need to be aligned on boundaries larger than `long long`
6988 (typically 64-bit) would need. Under this assumption, we simply add a
6989 dummy field of type `long long` to the `struct connectdata` struct. This
6990 field will never be accessed but acts as a placeholder for the four
6991 instances of ssl_backend_data instead. the size of each ssl_backend_data
6992 struct is stored in the SSL backend-specific metadata, to allow
6993 allocate_conn() to know how much extra space to allocate, and how to
6994 initialize the ssl[sockindex]->backend and proxy_ssl[sockindex]->backend
6995 pointers.
6996
6997 This would appear to be a little complicated at first, but is really
6998 necessary to encapsulate the private data of each SSL backend correctly.
6999 And we need to encapsulate thusly if we ever want to allow selecting
7000 CyaSSL and OpenSSL at runtime, as their headers cannot be included within
7001 the same .c file (there are just too many conflicting definitions and
7002 declarations for that).
7003
7004 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7005
7006- [Johannes Schindelin brought this change]
7007
7008 vtls: prepare the SSL backends for encapsulated private data
7009
7010 At the moment, cURL's SSL backend needs to be configured at build time.
7011 As such, it is totally okay for them to hard-code their backend-specific
7012 data in the ssl_connect_data struct.
7013
7014 In preparation for making the SSL backend a runtime option, let's make
7015 the access of said private data a bit more abstract so that it can be
7016 adjusted later in an easy manner.
7017
7018 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7019
7020- [Johannes Schindelin brought this change]
7021
7022 urldata.h: move SSPI-specific #include to correct location
7023
7024 In 86b889485 (sasl_gssapi: Added GSS-API based Kerberos V5 variables,
7025 2014-12-03), an SSPI-specific field was added to the kerberos5data
7026 struct without moving the #include "curl_sspi.h" later in the same file.
7027
7028 This broke the build when SSPI was enabled, unless Secure Channel was
7029 used as SSL backend, because it just so happens that Secure Channel also
7030 requires "curl_sspi.h" to be #included.
7031
7032 In f4739f639 (urldata: include curl_sspi.h when Windows SSPI is enabled,
7033 2017-02-21), this bug was fixed incorrectly: Instead of moving the
7034 appropriate conditional #include, the Secure Channel-conditional part
7035 was now also SSPI-conditional.
7036
7037 Fix this problem by moving the correct #include instead.
7038
7039 This is also required for an upcoming patch that moves all the Secure
7040 Channel-specific stuff out of urldata.h and encapsulates it properly in
7041 vtls/schannel.c instead.
7042
7043 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7044
7045- [Johannes Schindelin brought this change]
7046
7047 urldata.h: remove support for obsolete PolarSSL version
7048
7049 Since 5017d5ada (polarssl: now require 1.3.0+, 2014-03-17), we require
7050 a newer PolarSSL version. No need to keep code trying to support any
7051 older version.
7052
7053 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7054
7055- [Johannes Schindelin brought this change]
7056
7057 getinfo: access SSL internals via Curl_ssl
7058
7059 In the ongoing endeavor to abstract out all SSL backend-specific
7060 functionality, this is the next step: Instead of hard-coding how the
7061 different SSL backends access their internal data in getinfo.c, let's
7062 implement backend-specific functions to do that task.
7063
7064 This will also allow for switching SSL backends as a runtime option.
7065
7066 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7067
7068- [Johannes Schindelin brought this change]
7069
7070 vtls: move SSL backends' private constants out of their header files
7071
7072 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7073
7074- [Johannes Schindelin brought this change]
7075
7076 axtls: use Curl_none_* versions of init() and cleanup()
7077
7078 There are convenient no-op versions of the init/cleanup functions now,
7079 no need to define private ones for axTLS.
7080
7081 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7082
7083- [Johannes Schindelin brought this change]
7084
7085 vtls: remove obsolete declarations of SSL backend functionality
7086
7087 These functions are all available via the Curl_ssl struct now, no need
7088 to declare them separately anymore.
7089
7090 As the global declarations are removed, the corresponding function
7091 definitions are marked as file-local. The only two exceptions here are
7092 Curl_mbedtls_shutdown() and Curl_polarssl_shutdown(): only the
7093 declarations were removed, there are no function definitions to mark
7094 file-local.
7095
7096 Please note that Curl_nss_force_init() is *still* declared globally, as
7097 the only SSL backend-specific function, because it was introduced
7098 specifically for the use case where cURL was compiled with
7099 `--without-ssl --with-nss`. For details, see f3b77e561 (http_ntlm: add
7100 support for NSS, 2010-06-27).
7101
7102 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7103
7104- [Johannes Schindelin brought this change]
7105
7106 schannel: reorder functions topologically
7107
7108 The _shutdown() function calls the _session_free() function; While this
7109 is not a problem now (because schannel.h declares both functions), a
7110 patch looming in the immediate future with make all of these functions
7111 file-local.
7112
7113 So let's just move the _session_free() function's definition before it
7114 is called.
7115
7116 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7117
7118- [Johannes Schindelin brought this change]
7119
7120 axtls: reorder functions topologically
7121
7122 The connect_finish() function (like many other functions after it) calls
7123 the Curl_axtls_close() function; While this is not a problem now
7124 (because axtls.h declares the latter function), a patch looming in the
7125 immediate future with make all of these functions file-local.
7126
7127 So let's just move the Curl_axtls_close() function's definition before
7128 it is called.
7129
7130 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7131
7132- [Johannes Schindelin brought this change]
7133
7134 vtls: move the SUPPORT_HTTPS_PROXY flag into the Curl_ssl struct
7135
7136 That will allow us to choose the SSL backend at runtime.
7137
7138 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7139
7140- [Johannes Schindelin brought this change]
7141
7142 vtls: convert the have_curlssl_* constants to runtime flags
7143
7144 The entire idea of introducing the Curl_ssl struct to describe SSL
7145 backends is to prepare for choosing the SSL backend at runtime.
7146
7147 To that end, convert all the #ifdef have_curlssl_* style conditionals
7148 to use bit flags instead.
7149
7150 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7151
7152- [Johannes Schindelin brought this change]
7153
7154 vtls: move sha256sum into the Curl_ssl struct
7155
7156 The SHA-256 checksumming is also an SSL backend-specific function.
7157 Let's include it in the struct declaring the functionality of SSL
7158 backends.
7159
7160 In contrast to MD5, there is no fall-back code. To indicate this, the
7161 respective entries are NULL for those backends that offer no support for
7162 SHA-256 checksumming.
7163
7164 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7165
7166- [Johannes Schindelin brought this change]
7167
7168 vtls: move md5sum into the Curl_ssl struct
7169
7170 The MD5 summing is also an SSL backend-specific function. So let's
7171 include it, offering the previous fall-back code as a separate function
7172 now: Curl_none_md5sum(). To allow for that, the signature had to be
7173 changed so that an error could be returned from the implementation
7174 (Curl_none_md5sum() can run out of memory).
7175
7176 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7177
7178- [Johannes Schindelin brought this change]
7179
7180 vtls: use the Curl_ssl struct to access all SSL backends' functionality
7181
7182 This is the first step to unify the SSL backend handling. Now all the
7183 SSL backend-specific functionality is accessed via a global instance of
7184 the Curl_ssl struct.
7185
7186 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7187
7188- [Johannes Schindelin brought this change]
7189
7190 vtls: declare Curl_ssl structs for every SSL backend
7191
7192 The idea of introducing the Curl_ssl struct was to unify how the SSL
7193 backends are declared and called. To this end, we now provide an
7194 instance of the Curl_ssl struct for each and every SSL backend.
7195
7196 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7197
7198- [Johannes Schindelin brought this change]
7199
7200 vtls: introduce a new struct for SSL backends
7201
7202 This new struct is similar in nature to Curl_handler: it will define the
7203 functions and capabilities of all the SSL backends (where Curl_handler
7204 defines the functions and capabilities of protocol handlers).
7205
7206 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7207
7208- [Johannes Schindelin brought this change]
7209
7210 vtls: make sure every _sha256sum()'s first arg is const
7211
7212 This patch makes the signature of the _sha256sum() functions consistent
7213 among the SSL backends, in preparation for unifying the way all SSL
7214 backends are accessed.
7215
7216 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7217
7218- [Johannes Schindelin brought this change]
7219
7220 vtls: make sure all _data_pending() functions return bool
7221
7222 This patch makes the signature of the _data_pending() functions
7223 consistent among the SSL backends, in preparation for unifying the way
7224 all SSL backends are accessed.
7225
7226 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7227
7228- [Johannes Schindelin brought this change]
7229
7230 vtls: make sure all _cleanup() functions return void
7231
7232 This patch makes the signature of the _cleanup() functions consistent
7233 among the SSL backends, in preparation for unifying the way all SSL
7234 backends are accessed.
7235
7236 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7237
7238- [Johannes Schindelin brought this change]
7239
7240 vtls: use consistent signature for _random() implementations
7241
7242 This will make the upcoming multissl backend much easier to implement.
7243
7244 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
7245
7246- strtooff: fix build for systems with long long but no strtoll option
7247
7248 Closes #1829
7249
7250 Reported-by: Dan Fandrich
7251 Bug: https://github.com/curl/curl/pull/1758#issuecomment-324861615
7252
7253- darwinssl: handle long strings in TLS certs
7254
7255 ... as the previous fixed length 128 bytes buffer was sometimes too
7256 small.
7257
7258 Fixes #1823
7259 Closes #1831
7260
7261 Reported-by: Benjamin Sergeant
7262 Assisted-by: Bill Pyne, Ray Satiro, Nick Zitzmann
7263
7264- system.h: include sys/poll.h for AIX
7265
7266 ... to get the event/revent defines that might be used for the poll
7267 struct.
7268
7269 Reported-by: Michael Smith
7270 Fixes #1828
7271 Closes #1833