blob: 4df8ae839f9460b7c84d551f1eb3cecd5e03d8ed [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001 _ _ ____ _
2 ___| | | | _ \| |
3 / __| | | | |_) | |
4 | (__| |_| | _ <| |___
5 \___|\___/|_| \_\_____|
6
7 Changelog
8
9Version 7.54.1 (14 Jun 2017)
10
11Daniel Stenberg (14 Jun 2017)
12- release: 7.54.1
13
14Dan Fandrich (13 Jun 2017)
15- mk-lib1521.pl: updated to match the test changes in 916ec30a
16
17Daniel Stenberg (13 Jun 2017)
18- [Stuart Henderson brought this change]
19
20 libressl: OCSP and intermediate certs workaround no longer needed
21
22 lib/vtls/openssl.c has a workaround for a bug with OCSP responses signed
23 by intermediate certs, this was fixed in LibreSSL in
24 https://github.com/libressl-portable/openbsd/commit/912c64f68f7ac4f225b7d1fdc8fbd43168912ba0
25
26 Bug: https://curl.haxx.se/mail/lib-2017-06/0038.html
27
28- url: fix buffer overwrite with file protocol (CVE-2017-9502)
29
30 Bug: https://github.com/curl/curl/issues/1540
31 Advisory: https://curl.haxx.se/docs/adv_20170614.html
32
33 Assisted-by: Ray Satiro
34 Reported-by: Marcel Raad
35
36- urlglob: fix division by zero
37
38 The multiply() function that is used to avoid integer overflows, was
39 itself reason for a possible division by zero error when passed a
40 specially formatted glob.
41
42 Reported-by: GwanYeong Kim
43
44- configure: update the copyright year in the output
45
46- [ygrek brought this change]
47
48 BINDINGS: update SP-Forth and OCaml urls
49
50Michael Kaufmann (11 Jun 2017)
51- FindWin32CACert: Use a temporary buffer on the stack
52
53 Don't malloc() the temporary buffer, and use the correct type:
54 SearchPath() works with TCHAR, but SearchPathA() works with char.
55 Set the buffer size to MAX_PATH, because the terminating null byte
56 is already included in MAX_PATH.
57
58 Reviewed-by: Daniel Stenberg
59 Reviewed-by: Marcel Raad
60
61 Closes #1548
62
63Dan Fandrich (11 Jun 2017)
64- test1521: fixed OOM handling
65
66Daniel Stenberg (9 Jun 2017)
67- RELEASE-PROCEDURE: updated future release dates
68
69- [Paul Harris brought this change]
70
71 gitignore: ignore all vim swap files
72
73 Closes #1561
74
75- lib1521: fix compiler warnings on the use of bad 'long' values
76
77 Reported-by: Marcel Raad
78 Bug: https://github.com/curl/curl/commit/cccac4fb2b20d6ed87da7978408c3ecacc464fe4#commitcomment-22453387
79
80- setopt: check CURLOPT_ADDRESS_SCOPE option range
81
82 ... and return error instead of triggering an assert() when being way
83 out of range.
84
85Jay Satiro (8 Jun 2017)
86- [TheAssassin brought this change]
87
88 cmake: Fix inconsistency regarding mbed TLS include directory
89
90 Previously, one had to set MBEDTLS_INCLUDE_DIR to make CMake find the
91 headers, but the system complained that mbed TLS wasn't found due to
92 MBEDTLS_INCLUDE_DIRS (note the trailing s) was not set. This commit
93 attempts to fix that.
94
95 Closes https://github.com/curl/curl/pull/1541
96
97Daniel Stenberg (8 Jun 2017)
98- [Ryuichi KAWAMATA brought this change]
99
100 examples/multi-uv.c: fix deprecated symbol
101
102 Closes #1557
103
104- asyn-ares: s/Curl_expire_latest/Curl_expire
105
106- expire: remove Curl_expire_latest()
107
108 With the introduction of expire IDs and the fact that existing timers
109 can be removed now and thus never expire, the concept with adding a
110 "latest" timer is not working anymore as it risks to not expire at all.
111
112 So, to be certain the timers actually are in line and will expire, the
113 plain Curl_expire() needs to be used. The _latest() function was added
114 as a sort of shortcut in the past that's quite simply not necessary
115 anymore.
116
117 Follow-up to 31b39c40cf90
118
119 Reported-by: Paul Harris
120
121 Closes #1555
122
123- [Chris Carlmar brought this change]
124
125 configure: fix link with librtmp when specifying path
126
127 Bug: https://curl.haxx.se/mail/lib-2017-06/0017.html
128
129- file: make speedcheck use current time for checks
130
131 ... as it would previously just get the "now" timestamp before the
132 transfer starts and then not update it again.
133
134 Closes #1550
135
136- metalink: remove unused printf() argument
137
138- travis: let some builds *not* use --enable-debug
139
140 typecheck-gcc and other things require optimized builds
141
142 Closes #1544
143
144- README.md: show the coverall coverage on github
145
146- lib1521: fix compiler warnings
147
148- test1521: make the code < 80 columns wide
149
150- test1121: use stricter types to work with typcheck-gcc
151
152- typecheck-gcc: allow CURLOPT_STDERR to be NULL too
153
154- test1521: test *all* curl_easy_setopt options
155
156 mk-lib1521.pl generates a test program (lib1521.c) that calls
157 curl_easy_setopt() for every known option with a few typical values to
158 make sure they work (ignoring the return codes).
159
160 Some small changes were necessary to avoid asserts and NULL accesses
161 when doing this.
162
163 The perl script needs to be manually rerun when we add new options.
164
165 Closes #1543
166
167Dan Fandrich (5 Jun 2017)
168- test1538: added "verbose logs" keyword
169
170 These error messages are not displayed with --disable-verbose
171
172Daniel Stenberg (5 Jun 2017)
173- test1262: verify ftp download with -z for "if older than this"
174
175Marcel Raad (5 Jun 2017)
176- curl_ntlm_core: use Curl_raw_toupper instead of toupper
177
178 This was the only remaining use of toupper in the entire source code.
179
180 Suggested-by: Daniel Stenberg
181
182Daniel Stenberg (4 Jun 2017)
183- RELEASE-NOTES: synced with 65ba92650
184
185Marcel Raad (4 Jun 2017)
186- curl_ntlm_core: pass unsigned char to toupper
187
188 Otherwise, clang on Cygwin64 warns:
189 curl_ntlm_core.c:525:35: error: array subscript is of type 'char'
190 [-Werror,-Wchar-subscripts]
191 dest[2 * i] = (unsigned char)(toupper(src[i]));
192 ^~~~~~~~~~~~~~~
193 /usr/include/ctype.h:152:25: note: expanded from macro 'toupper'
194 (void) __CTYPE_PTR[__x]; (toupper) (__x);})
195 ^~~~
196
197Jay Satiro (3 Jun 2017)
198- [Mahmoud Samir Fayed brought this change]
199
200 BINDINGS: add Ring binding
201
202 Closes https://github.com/curl/curl/pull/1539
203
204Daniel Stenberg (4 Jun 2017)
205- CONTRIBUTE.md: mention tests done on pull requests
206
207- travis: add coverage, distcheck and cmake builds
208
209 Closes #1534
210
211Marcel Raad (3 Jun 2017)
212- libtest: fix int-in-bool-context warnings
213
214 GCC 7 complained:
215 ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
216
217- libtest: fix implicit-fallthrough warnings with GCC 7
218
219- x509asn1: fix implicit-fallthrough warning with GCC 7
220
221- curl_sasl: fix unused-variable warning
222
223 This fixes the following warning with CURL_DISABLE_CRYPTO_AUTH,
224 as seen in the autobuilds:
225
226 curl_sasl.c:417:9: warning: unused variable 'serverdata'
227 [-Wunused-variable]
228
229Daniel Stenberg (3 Jun 2017)
230- updatemanpages.pl: error out on too old git version
231
232Marcel Raad (3 Jun 2017)
233- cyassl: define build macros before including ssl.h
234
235 cyassl/ssl.h needs the macros from cyassl/options.h, so define them
236 before including cyassl/ssl.h the first time, which happens in
237 urldata.h.
238 This broke the build on Ubuntu Xenial, which comes with WolfSSL 3.4.8
239 and therefore redefines the symbols from cyassl/options.h instead of
240 including the header.
241
242 Closes https://github.com/curl/curl/pull/1536
243
244Daniel Stenberg (3 Jun 2017)
245- tool_util: remove unused tvdiff_secs and remove tool_ prefix
246
247 Closes #1532
248
249- dedotdot: fixed output for ".." and "." only input
250
251 Found when updating test 1395, which I did to increase test coverage of
252 this source file...
253
254 Closes #1535
255
256Marcel Raad (2 Jun 2017)
257- mbedtls: make TU-local variable static
258
259 mbedtls_x509_crt_profile_fr is only used locally.
260 This fixes a missing-variable-declarations warning with clang.
261
262- MD(4|5): silence cast-align clang warning
263
264 Unaligned access is on purpose here and the warning is harmless on
265 affected architectures. GCC knows that, while clang warns on all
266 architectures.
267
268Daniel Stenberg (2 Jun 2017)
269- test1538: fix typo
270
271- test1538: verify the libcurl strerror API calls
272
273- curl_endian: remove unused functions
274
275 Closes #1529
276
277- test1537: dedicated tests of the URL (un)escape API calls
278
279 Closes #1530
280
281- coverage: run event tests too
282
283 ... the torture ones are commented out only because they are slooooow.
284
285- build: provide easy code coverage measuring
286
287 Closes #1528
288
289- typecheck-gcc.h: check CURLINFO_CERTINFO
290
291 ... and update the certinfo.c example accordingly.
292
293 Fixes https://github.com/curl/curl/issues/846
294
295- typecheck-gcc.h: check CURLINFO_TLS_SSL_PTR and CURLINFO_TLS_SESSION
296
297 ... so that they get the required "struct curl_tlssessioninfo **"
298 arguments.
299
300- typecheck-gcc.h: separate getinfo slist checks from other pointers
301
302 Fixes #1524
303
304Marcel Raad (1 Jun 2017)
305- curl-compilers.m4: escape square brackets in regex
306
307 Otherwise, they are removed in the final configure file.
308 Also changed sed to "$SED" like in most other calls in this file.
309
310- curl-compilers.m4: fix compiler_num for clang
311
312 "clang -dumpversion" always returns "4.2.1", the GCC version that clang
313 was initially compatible to. Use "clang -v" instead, which returns the
314 actual clang version.
315
316 Fixes https://github.com/curl/curl/issues/1522
317 Closes https://github.com/curl/curl/pull/1523
318
319Daniel Stenberg (31 May 2017)
320- examples/externalsocket.c: s/closesocket/closecb
321
322 ... since closesocket is a function in WinSock.
323
324 Reported-by: Marcel Raad
325 Bug: https://github.com/curl/curl/commit/55fcb8485914700132fd1854c9509b66c955efbe#co
326 mmitcomment-22347818
327
328Marcel Raad (31 May 2017)
329- lib583: fix compiler warning
330
331 Use CURLMcode for variable 'res' and cast to int where necessary
332 instead of the other way around. Other tests do the same.
333
334 This fixes the following clang warning:
335 lib583.c:68:15: warning: cast from function call of type 'CURLMcode' to
336 non-matching type 'int' [-Wbad-function-cast]
337
338Daniel Stenberg (31 May 2017)
339- CURLOPT_SSH_KEY*.3: typos
340
341 Reported-by: Gisle Vanem
342
343- CURLOPT_STREAM_DEPENDS.3: typo
344
345- CURLOPT_FNMATCH_FUNCTION.3: also modified example to avoid fcpp issues
346
347- CURLOPT_FNMATCH_DATA.3: modified example to avoid fcpp issues
348
349- opts: more than 100 more examples for man pages...
350
351- libtest/lib574.c: use correct callback proto
352
353- examples/sampleconv.c: indent changes, made callbacks static
354
355- example/externalsocket.c: make it use CLOSESOCKETFUNCTION too
356
357Marcel Raad (31 May 2017)
358- curl-compilers.m4: enable -Wshift-sign-overflow for clang
359
360 clang 2.9+ supports -Wshift-sign-overflow, which warns about undefined
361 behavior on signed left shifts when shifting by too many places.
362
363 Ref: https://github.com/curl/curl/issues/1516
364 Closes https://github.com/curl/curl/pull/1517
365
366Daniel Stenberg (31 May 2017)
367- CURLOPT_PROXY.3: fix test 1140 breakage
368
369Jay Satiro (31 May 2017)
370- build-wolfssl: Sync config with wolfSSL 3.11
371
372 wolfSSL configure script relevant changes from 3.10 to 3.11:
373
374 - Async threading support added; disabled by default without async
375 crypto, which continues to be disabled by default.
376
377 wolfSSL configure script relevant changes from 3.11 to 3.11.1 (beta):
378
379 - TLS 1.3 beta support added; disabled by default.
380
381 For experimenting I put in a comment block the defines needed to enable
382 TLS 1.3 support (ie the equivalent of --enable-tls13).
383
384Daniel Stenberg (30 May 2017)
385- opts: more examples added to man pages
386
387- docs: clarify NO_PROXY further
388
389 Fixes #1208
390
391- CURLOPT_PROXY.3: describe the environment variables more
392
393- transfer: init the infilesize from the postfields...
394
395 ... with a strlen() if no size was set, and do this in the pretransfer
396 function so that the info is set early. Otherwise, the default strlen()
397 done on the POSTFIELDS data never sets state.infilesize.
398
399 Reported-by: Vincas Razma
400 Bug: #1294
401
402Jay Satiro (29 May 2017)
403- test557: fix ubsan runtime error due to int left shift
404
405 - Test curl_msnprintf negative int width arg using INT_MIN instead of
406 1 << 31 which is undefined behavior.
407
408 Closes https://github.com/curl/curl/issues/1516
409
410- mbedtls: fix variable shadow warning
411
412 vtls/mbedtls.c:804:69: warning: declaration of 'entropy' shadows a global declaration [-Wshadow]
413 CURLcode Curl_mbedtls_random(struct Curl_easy *data, unsigned char *entropy,
414 ^~~~~~~
415
416Daniel Stenberg (29 May 2017)
417- RELEASE-NOTES: synced with 3aaac8c2f
418
419Dan Fandrich (28 May 2017)
420- tests: removed some redundant empty <stdout> sections
421
422- runtests.pl: removed <precommand> feature
423
424 This hasn't been used in over a decade. <precheck> can still be used to
425 run commands before the main test.
426
427Daniel Stenberg (27 May 2017)
428- opts: more examples added in option man pages
429
430Dan Fandrich (27 May 2017)
431- runtests.pl: removed unused arguments to valgrindparse
432
433Daniel Stenberg (25 May 2017)
434- TODO: 6.4 is done, send telnet data in chunks
435
436- [Phil Crump brought this change]
437
438 docs/CURLOPT_SSLVERSION.3: Correct define name in example
439
440 Closes #1509
441
442- ssh: fix 'left' may be used uninitialized
443
444 follow-up to f31760e63b4e
445
446 Reported-by: Michael Kaufmann
447 Bug: https://github.com/curl/curl/pull/1495#issuecomment-303982793
448
449Michael Kaufmann (24 May 2017)
450- time: fix type conversions and compiler warnings
451
452 Fix bugs and compiler warnings on systems with 32-bit long and
453 64-bit time_t.
454
455 Reviewed-by: Daniel Stenberg
456
457 Closes #1499
458
459Marcel Raad (24 May 2017)
460- examples: fix Wimplicit-fallthrough warnings
461
462 This is contained in -Wextra with GCC 7.
463
464Daniel Stenberg (24 May 2017)
465- [Anatol Belski brought this change]
466
467 winbuild: fix the nghttp2 build
468
469 Closes #1321
470
471GitHub (24 May 2017)
472- [Sergei Nikulov brought this change]
473
474 LDAP: documentation update per #878 changes (#1506)
475
476Daniel Stenberg (23 May 2017)
477- redirect: store the "would redirect to" URL when max redirs is reached
478
479 Test 1261 added to verify.
480
481 Reported-by: Lloyd Fournier
482
483 Fixes #1489
484 Closes #1497
485
486GitHub (24 May 2017)
487- [Sergei Nikulov brought this change]
488
489 LDAP: fixed checksrc issue
490
491- [Sergei Nikulov brought this change]
492
493 LDAP: using ldap_bind_s on Windows with methods (#878)
494
495 * LDAP: using ldap_bind_s on Windows with methods(BASIC/DIGEST/NTLM/AUTONEG)
496
497 * ldap: updated per build options handling
498
499 * ldap: fixed logic for auth selection
500
501Daniel Stenberg (23 May 2017)
502- [Akhil Kedia brought this change]
503
504 cmake: fix build on Ubuntu 14.04
505
506 Fixed a syntax error with setting cache variables (The type and
507 docstring were missing), resulting in build errors. Quoted the
508 CURL_CA_PATH and CURL_CA_BUNDLE otherwise the path was written without
509 quotes in C code, resulting in build errors.
510
511 Closes #1503
512
513 Signed-off-by: Akhil <akhil.kedia@samsung.com>
514
515- url: fix declaration of 'pipe' shadows a global declaration
516
517 follow-up to 4cdb1be8246c
518
519Kamil Dudka (22 May 2017)
520- memdebug: fix compilation failure
521
522 .... caused by a typo in the last commit (fixing issue #1504):
523
524 memdebug.c: In function ‘curl_fclose’:
525 memdebug.c:444:3: error: implicit declaration of function
526 ‘DEBUGDEBUGASSERT’ [-Werror=implicit-function-declaration]
527
528Daniel Stenberg (22 May 2017)
529- assert: avoid, use DEBUGASSERT instead!
530
531 ... as it does extra checks to actually work.
532
533 Reported-by: jonrumsey at github
534 Fixes #1504
535
536- [Simon Warta brought this change]
537
538 cmake: remove unused variables: GNUTLS_ENABLED, NSS_ENABLED
539
540- [Simon Warta brought this change]
541
542 cmake: remove CURL_CA_BUNDLE from cmake TODO
543
544- [Simon Warta brought this change]
545
546 cmake: auto detection of CURL_CA_BUNDLE/CURL_CA_PATH
547
548 Closes #1461
549
550- [Simon Warta brought this change]
551
552 cmake: add CURL_CA_BUNDLE/CURL_CA_FALLBACK/CURL_CA_PATH options
553
554- [Simon Warta brought this change]
555
556 cmake: Add CURL_CA_FALLBACK to curl_config.h.cmake
557
558 This is for symmetry with the autoconf generated curl_config.h.in
559
560- RELEASE-NOTES: synced with 052a14e3c
561
562Michael Kaufmann (20 May 2017)
563- tests: stabilize test 1034
564
565 Pass the invalid domain name on stdin. On some systems, the test
566 framework cannot pass invalid UTF-8 sequences on the command line.
567
568 Closes #1488
569
570Daniel Stenberg (20 May 2017)
571- ssh: ignore timeouts during disconnect
572
573 ... as otherwise it risks not cleaning up the libssh2 handle properly
574 which leads to memory leak!
575
576 Assisted-by: Joel Depooter
577
578 Closes #1495
579 Closes #1479
580
581 Bug: https://curl.haxx.se/mail/lib-2017-04/0024.html
582
583- ghiper.c/hiperfifo.c: add comment about missing timer functionality
584
585 It takes someone to read up on the APIs of these libraries to figure out
586 how to do this correctly.
587
588 Reported-by: Michael Kaufmann
589
590 Closes #1253
591
592- asiohiper.cpp / evhiperfifo.c: deal with negative timerfunction input
593
594 That means delete the timer.
595
596 Reported-by: Michael Kaufmann
597 Ref: #1253
598
599- cmdline-opts/write-out.d: s/-L/--location
600
601 Since the man page generator wants the long option name version to
602 generate the proper output.
603
604- [Bernhard M. Wiedemann brought this change]
605
606 mkhelp.pl: do not add current time into curl binary
607
608 ... as part of hugehelpgz rodata to make build reproducible.
609
610 See https://reproducible-builds.org/ for why this is good
611
612 Closes #1490
613
614- oauth2-bearer.d: mention the <token> argument
615
616Nick Zitzmann (16 May 2017)
617- darwinssl: Fix exception when processing a client-side certificate file
618 if no error was raised by the API but the SecIdentityRef was null
619
620 Fixes #1450
621
622Daniel Stenberg (16 May 2017)
623- curl_sasl: fix build error with CURL_DISABLE_CRYPTO_AUTH + USE_NTLM
624
625 Reported-by: wyattoday at github
626 Fixes #1487
627
628- docs/cmdline-opts/config.d: edit for language
629
630- RELEASE-NOTES: synced with eb16305e6
631
632- [moparisthebest brought this change]
633
634 SecureTransport/DarwinSSL: Implement public key pinning
635
636 Closes #1400
637
638- man pages: fix example syntax errors
639
640 follow-up to 5ddad099b42b50
641
642- docs/libcurl/opts: added more examples in man pages
643
644- CURLOPT_HTTPPROXYTUNNEL: clarify, add example
645
646- curl: show the libcurl release date in --version output
647
648 ... and support and additional "security patched" date for those who
649 enhance older versions that way. Pass on the define CURL_PATCHSTAMP with
650 a date for that.
651
652 Building with non-release headers shows the date as [unreleased].
653
654 Also: this changes the date format generated in the curlver.h file to be
655 "YYYY-MM-DD" (no name of the day or month, no time, no time zone) to
656 make it easier on the eye and easier to parse. Example (new) date
657 string: 2017-05-09
658
659 Suggested-by: Brian Childs
660
661 Closes #1474
662
663Dan Fandrich (13 May 2017)
664- url.c: add a compile-time check that CURL_MAX_WRITE_SIZE is large enough
665
666 Some code (e.g. Curl_fillreadbuffer) assumes that this buffer is not
667 exceedingly tiny and will break if it is. This same check is already
668 done at run time in the CURLOPT_BUFFERSIZE option.
669
670- lib510: don't write past the end of the buffer if it's too small
671
672- tests: added missing keywords "chunked Transfer-Encoding"
673
674Daniel Stenberg (13 May 2017)
675- THANKS: add a few missing names
676
677 ... I found them in the commit logs from the early years
678
679Dan Fandrich (13 May 2017)
680- tests: made a couple of prechecks consistent with others
681
682 Also removed a TODO suggesting caching the precheck results. Tests
683 showed this would save about 0.1 sec on the total test run time on a
684 relatively modern system, an unnoticeable gain at the cost of longer and
685 more complicated code. There would also be a danger that a cached test
686 result would be inappropriately returned, such as when other test
687 dependencies (like environment variables) are different or when the
688 precheck causes side effects (like filesystem changes).
689
690Daniel Stenberg (12 May 2017)
691- FAQ: add 7.4 to toc
692
693 ... and delete trailing whitespace
694
695 Fixes #1484
696
697- multi: remove leftover debug infof() calls from e9fd794a6
698
699- pipeline: fix mistakenly trying to pipeline POSTs
700
701 The function IsPipeliningPossible() would return TRUE if either
702 pipelining OR HTTP/2 were possible on a connection, which would lead to
703 it returning TRUE even for POSTs on HTTP/1 connections.
704
705 It now returns a bitmask so that the caller can differentiate which kind
706 the connection allows.
707
708 Fixes #1481
709 Closes #1483
710 Reported-by: stootill at github
711
712Jay Satiro (12 May 2017)
713- [Ron Eldor brought this change]
714
715 mbedtls: Support server renegotiation request
716
717 Tested with servers: IIS 7.5; OpenSSL 1.0.2.
718
719 Closes https://github.com/curl/curl/pull/1475
720
721Marcel Raad (11 May 2017)
722- cookie_interface: fix -Wcomma warning
723
724 clang 5.0 complains:
725 possible misuse of comma operator here [-Wcomma]
726
727- formdata: fix -Wcomma warning
728
729 clang 5.0 complains:
730 possible misuse of comma operator here [-Wcomma]
731
732 Change the comma to a semicolon to fix that.
733
734Daniel Stenberg (10 May 2017)
735- multi: use a fixed array of timers instead of malloc
736
737 ... since the total amount is low this is faster, easier and reduces
738 memory overhead.
739
740 Also, Curl_expire_done() can now mark an expire timeout as done so that
741 it never times out.
742
743 Closes #1472
744
745- multi: assign IDs to all timers and make each timer singleton
746
747 A) reduces the timeout lists drastically
748
749 B) prevents a lot of superfluous loops for timers that expires "in vain"
750 when it has actually already been extended to fire later on
751
752- [Richard Hsu brought this change]
753
754 tests: remove superfluous test 1399
755
756 @MarcelRaad noted that `test1399` causes infinite loop on MinGW.
757 Looking into this, seems like it is related to how Windows handles
758 CRLF. See https://github.com/curl/curl/commit/9e093f by @mback2k.
759 Removing `test1399` as it's identical to `test1326` then with such a
760 fix.
761
762 Test 1399 was broughy by commit 862b02f8947039e
763
764 Closes #1478
765
766Dan Fandrich (9 May 2017)
767- tests: make test file names more unique
768
769 Include the test number in the names of files written out by tests to
770 reduce the chance of accidental duplication and to make it more clear
771 which test is associated with which file.
772
773- tests: removed redundant --trace-ascii arguments
774
775 This is already added by the test suite; it's not clear why all these
776 tests had it, unless it's cargo-culting.
777
778Marcel Raad (9 May 2017)
779- tool: fix remaining -Wcast-qual warnings
780
781 Avoid casting away low-level const.
782
783Daniel Stenberg (9 May 2017)
784- formboundary: convert assert into run-time check
785
786 ... to really make sure the boundary fits in the target buffer.
787
788 Fixes unused parameter 'buflen' warning.
789
790 Reported-by: Michael Kaufmann
791 Bug: https://github.com/curl/curl/pull/1468#issuecomment-300078754
792
793Dan Fandrich (9 May 2017)
794- tests: list the primary server first in the server section
795
796Daniel Stenberg (8 May 2017)
797- curl: generate the --help output
798
799 ... using the docs/cmdline-opts/gen.pl script, so that we get all the
800 command line option documentation from the same source.
801
802 The generation of the list has to be done manually and pasted into the
803 source code.
804
805 Closes #1465
806
807- tests: updated for modified fake random
808
809- [Jay Satiro brought this change]
810
811 rand: treat fake entropy the same regardless of endianness
812
813 When the random seed is purposely made predictable for testing purposes
814 by using the CURL_ENTROPY environment variable, process that data in an
815 endian agnostic way so the the initial random seed is the same
816 regardless of endianness.
817
818 - Change Curl_rand to write to a char array instead of int array.
819
820 - Add Curl_rand_hex to write random hex characters to a buffer.
821
822 Fixes #1315
823 Closes #1468
824
825 Co-authored-by: Daniel Stenberg
826 Reported-by: Michael Kaufmann
827
828Dan Fandrich (8 May 2017)
829- tests: give each stunnel.conf file a unique name
830
831 Otherwise, subsequent uses of stunnel overwrite the configuration file
832 of previous invocations so they can no longer be inspected.
833
834Marcel Raad (8 May 2017)
835- tool_msgs: remove wrong cast
836
837 Commit 481e0de00a9003b9c5220b120e3fc302d9b0932d changed the variable
838 type from int to size_t, so don't cast the result of strlen to int
839 anymore.
840
841- tftpd: fix signed/unsigned mismatch warnings
842
843 alarm's argument is unsigned.
844
845- libtest: fix MinGW-w64 warnings
846
847 long is 32 bits while size_t is 64 bits on MinGW-w64, so
848 typecheck-gcc.h complains when using size_t for a long option.
849 Also, curl_socket_t is unsigned long long rather than int.
850
851Daniel Stenberg (8 May 2017)
852- curl.1: depend the build on the Makefile.inc too
853
854 ... to also make it update when we remove files, like we did for
855 --environment in commit a8e388dd1095.
856
857- RELEASE-NOTES: synced with e3f84efc32d6b01a
858
859- runtests: fix "use of undefined value" warning in -R handling
860
861Marcel Raad (8 May 2017)
862- test537: use correct variable type
863
864 Avoids narrowing conversion warnings because rlim_t is usually
865 unsigned long.
866
867 Closes https://github.com/curl/curl/pull/1469
868
869- sendrecv: fix MinGW-w64 warning
870
871 The first argument to select is an int, while curl_socket_t is
872 unsigned long long when using WinSock. It's ignored anyway [1].
873
874 [1] https://msdn.microsoft.com/en-us/library/windows/desktop/ms740141.aspx
875
876- tool_parsecfg: fix -Wcast-qual warning
877
878 Don't convert string literal to char * before assigning it to
879 const char *.
880
881- asyn-thread: fix unused macro warnings
882
883 Don't do anything in this file if CURLRES_THREADED is not defined.
884
885- tftp: silence bad-function-cast warning
886
887 The cases this warns about are handled elsewhere, so just use an
888 intermediate variable to silence the warning.
889
890Daniel Stenberg (7 May 2017)
891- [canavan at github brought this change]
892
893 buildconf: fix hang on IRIX
894
895 Apparently, /usr/bin/m4 ignores the --version parameter and waits for
896 input from stdin.
897
898 Fixes #1471
899
900- opts: fix bad example formatting \n => \\n
901
902 ...to render properly nroff.
903
904- opts: examples added to 8 more libcurl option man pages
905
906- curl: remove tool_writeenv.[ch]
907
908 ... and USE_ENVIRONMENT and --environment. It was once added for RISC OS
909 support and its platform specific behavior has been annoying ever
910 since. Added in commit c3c8bbd3b2688da8e, mostly unchanged since
911 then. Most probably not actually used for years.
912
913 Closes #1463
914
915Dan Fandrich (6 May 2017)
916- runtests.pl: simplify the datacheck read section
917
918 Also, document that numbered datacheck sections are possible.
919
920Marcel Raad (5 May 2017)
921- tests: fix -Wcast-qual warnings
922
923 Avoid casting string literals to non-const char *.
924
925Daniel Stenberg (5 May 2017)
926- docs/opts: 24 more man pages now have examples
927
928- docs/opts: 23 more man pages now have examples
929
930- tests/server: run checksrc by default in debug-builds
931
932- curl_slist_append.3: clarify a NULL input creates a new list
933
934Marcel Raad (5 May 2017)
935- unit1305: fix compiler warning
936
937 calloc and ai_addrlen expect different (usually unsigned) types.
938
939Daniel Stenberg (5 May 2017)
940- runtests: use -R for random order
941
942 Suggested-by: Dan Fandrich
943
944- runtests: add -o to run test cases in scrambled order
945
946 ... instead of numerical order.
947
948 Closes #1466
949
950Dan Fandrich (4 May 2017)
951- sockfilt.c: shortened too long line
952
953Marcel Raad (4 May 2017)
954- tests/server: make string literals const
955
956 assign string literals to const char * instead of char * in order to
957 avoid a lot of these warnings:
958 cast from 'const char *' to 'char *' drops const qualifier
959 [-Wcast-qual]
960
961Dan Fandrich (4 May 2017)
962- schannel: return a more specific error code for SEC_E_UNTRUSTED_ROOT
963
964- test557: set a known good numeric locale
965
966 Windows does not allow setting the locale with environment variables (as
967 the test attempted to do), so the test failed when run with a user
968 locale that has a comma as radixchar. Changed the test to call
969 setlocale() explicitly to ensure that a known working locale is set even
970 on Windows.
971
972Daniel Stenberg (4 May 2017)
973- curl: fix warning "comma at end of enumerator list"
974
975- test559: verify use of minimum CURLOPT_BUFFERSIZE
976
977Marcel Raad (4 May 2017)
978- curl_setup_once: use SEND_QUAL_ARG2 for swrite
979
980 SEND_QUAL_ARG2 had to be set, but was never used. Use it in swrite to
981 avoid warnings about casting away low-level const.
982
983 Closes https://github.com/curl/curl/pull/1464
984
985Daniel Stenberg (4 May 2017)
986- CURLINFO_REDIRECT_URL.3: add example
987
988- CURLINFO_EFFECTIVE_URL.3: add example
989
990Marcel Raad (3 May 2017)
991- lib: fix compiler warnings
992
993 Fix the following warnings when building the tests by using the correct
994 types:
995 cast from 'const char *' to 'void *' drops const qualifier
996 [-Wcast-qual]
997 implicit conversion changes signedness [-Wsign-conversion]
998
999- typecheck-gcc: add support for CURLINFO_SOCKET
1000
1001 Closes https://github.com/curl/curl/pull/1452
1002
1003- typecheck-gcc: add missing string options
1004
1005 Closes https://github.com/curl/curl/pull/1452
1006
1007Daniel Stenberg (3 May 2017)
1008- abstract-unix-socket.d: shorten the help text to fit within 79 cols
1009
1010- RELEASE-NOTES: synced with 862b02f89
1011
1012- [Richard Hsu brought this change]
1013
1014 Telnet: Write full buffer instead of byte-by-byte
1015
1016 Previous TODO wanting to write in chunks. We should support writing more
1017 at once since some TELNET servers may respond immediately upon first
1018 byte written such as WHOIS servers.
1019
1020 Closes #1389
1021
1022- curl: non-boolean command line args reject --no- prefixes
1023
1024 ... and instead properly respond with an error message to the user
1025 instead of silently ignoring.
1026
1027 Fixes #1453
1028 Closes #1458
1029
1030Marcel Raad (2 May 2017)
1031- testpart: remove _MPRINTF_REPLACE
1032
1033 Support for _MPRINTF_REPLACE in mprintf.h was removed in
1034 55452ebdff47f98bf3cc383f1dfc3623fcaefefd, replaced with curl_printf.h.
1035
1036Dan Fandrich (2 May 2017)
1037- gtls: fixed a lingering BUFSIZE reference
1038
1039Daniel Stenberg (2 May 2017)
1040- ssh: fix compiler warning from e40e9d7f0de
1041
1042- url: let CURLOPT_BUFFERSIZE realloc to smaller sizes too
1043
1044 Closes #1449
1045
1046- BUFSIZE: rename to READBUFFER_*, make separate MASTERBUF_SIZE
1047
1048- openssl: use local stack for temp storage
1049
1050- sendf: remove use of BUFSIZE from debug data conversions
1051
1052 The buffer can have other sizes.
1053
1054- buffer: use data->set.buffer_size instead of BUFSIZE
1055
1056 ... to properly use the dynamically set buffer size!
1057
1058- krb5: use private buffer for temp string, not receive buffer
1059
1060- upload: UPLOAD_BUFSIZE is now for the upload buffer
1061
1062- unit1606: do not print/access buffer
1063
1064 It was a wrong assumption that it could do that!
1065
1066- http-proxy: use a dedicated CONNECT response buffer
1067
1068 To make it suitably independent of the receive buffer and its flexible
1069 size.
1070
1071- transfer: fix minor buffer_size mistake
1072
1073- failf: use private buffer, don't clobber receive buffer
1074
1075- pingpong: use the set buffer size
1076
1077- http2: use the correct set buffer size
1078
1079- http: don't clobber the receive buffer for timecond
1080
1081- buffer_size: make sure it always has the correct size
1082
1083 Removes the need for CURL_BUFSIZE
1084
1085- file: use private buffer for C-L output
1086
1087 ... instead of clobbering the download buffer.
1088
1089- CURLOPT_BUFFERSIZE: 1024 bytes is now the minimum size
1090
1091 The buffer is needed to receive FTP, HTTP CONNECT responses etc so
1092 already at this size things risk breaking and smaller is certainly not
1093 wise.
1094
1095- ftp: use private buffer for temp storage, not receive buffer
1096
1097- http: use private user:password output buffer
1098
1099 Don't clobber the receive buffer.
1100
1101Marcel Raad (1 May 2017)
1102- anyauthput: remove unused code
1103
1104 The definition of TRUE was introduced in
1105 4a728747e6f8845e500910e397dfc99aaf4a7984 and is not used anymore since
1106 e664cd5826d43930fcc5b5dbaedbec94af33184b.
1107 The usage of intptr_t was removed in
1108 32e38b8f42477cf5ce3c3fef2fcc9db82f7fb7be.
1109
1110Jay Satiro (1 May 2017)
1111- tool: Fix missing prototype warnings for CURL_DOES_CONVERSIONS
1112
1113 - Include tool_convert.h where needed.
1114
1115 Bug: https://github.com/curl/curl/issues/1460
1116 Reported-by: Gisle Vanem
1117
1118- curl_setup: Ensure no more than one IDN lib is enabled
1119
1120 Prior to this change it was possible for libcurl to be built with both
1121 Windows' native IDN lib (normaliz) and libidn2 enabled. It appears that
1122 doesn't offer any benefit --and could cause a bug-- since libcurl's IDN
1123 handling is written to use either one but not both.
1124
1125 Bug: https://github.com/curl/curl/issues/1441#issuecomment-297689856
1126 Reported-by: Gisle Vanem
1127
1128Marcel Raad (1 May 2017)
1129- getpart: use correct variable type
1130
1131 This fixes the following clang warning:
1132 getpart.c:201:17: warning: cast from function call of type 'CURLcode'
1133 to non-matching type 'int' [-Wbad-function-cast]
1134
1135- tests: declare TU-local variables static
1136
1137 This fixes missing-variable-declarations warnings when building with
1138 clang.
1139
1140- tool_cb_prg: fix double-promotion warning
1141
1142 clang complains:
1143 tool_cb_prg.c:86:22: error: implicit conversion increases
1144 floating-point precision: 'float' to 'double'
1145 [-Werror,-Wdouble-promotion]
1146
1147 Fix this by using a double instead of a float constant.
1148
1149Dan Fandrich (1 May 2017)
1150- examples: fixed too long line and too long string warnings
1151
1152Marcel Raad (30 Apr 2017)
1153- examples: declare TU-local variables static
1154
1155 This fixes missing-variable-declarations warnings when building with
1156 clang.
1157
1158- http2: declare TU-local variables static
1159
1160 This fixes the following clang warnings:
1161
1162 http2.c:184:27: error: no previous extern declaration for non-static
1163 variable 'Curl_handler_http2' [-Werror,-Wmissing-variable-declarations]
1164 http2.c:204:27: error: no previous extern declaration for non-static
1165 variable 'Curl_handler_http2_ssl'
1166 [-Werror,-Wmissing-variable-declarations]
1167
1168Dan Fandrich (30 Apr 2017)
1169- unit1604: fixed indentation
1170
1171- unit1604: fixed compilation under Windows, broken in the previous commit
1172
1173- tests: fixed OOM handling of unit tests to abort test
1174
1175 It's dangerous to continue to run the test when a memory alloc fails.
1176
1177Marcel Raad (29 Apr 2017)
1178- curl_rtmp: fix missing-variable-declarations warnings
1179
1180 clang complains:
1181
1182 curl_rtmp.c:61:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmp' [-Werror,-Wmissing-variable-declarations]
1183 curl_rtmp.c:81:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmpt' [-Werror,-Wmissing-variable-declarations]
1184 curl_rtmp.c:101:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmpe' [-Werror,-Wmissing-variable-declarations]
1185 curl_rtmp.c:121:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmpte' [-Werror,-Wmissing-variable-declarations]
1186 curl_rtmp.c:141:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmps' [-Werror,-Wmissing-variable-declarations]
1187 curl_rtmp.c:161:27: error: no previous extern declaration for non-static variable 'Curl_handler_rtmpts' [-Werror,-Wmissing-variable-declarations]
1188
1189 Fix this by including the header file.
1190
1191Dan Fandrich (29 Apr 2017)
1192- url: fixed a memory leak on OOM while setting CURLOPT_BUFFERSIZE
1193
1194- tests: added --remote-time tests for remaining protocols that support it
1195
1196- runtests.pl: support multiline <postcheck> commands
1197
1198- tool_operate: use utimes instead of obsolescent utime when available
1199
1200- test1443: test --remote-time
1201
1202- http-proxy: removed unused argument in CURL_DISABLE_PROXY case
1203
1204 Missed in commit 55c3c02e
1205
1206Daniel Stenberg (27 Apr 2017)
1207- cookie_interface.c: changed the other domain to example.com too
1208
1209- cookie_interface.c: fix cookie domain so the example works
1210
1211Dan Fandrich (26 Apr 2017)
1212- Makefile: fix make dist
1213
1214 Commit 80a87e8a broke 'make dist' as it can't handle installing from
1215 absolute target names. Rearranged the dependencies so the absolute name
1216 is used for building but the relative name is use for distributing.
1217
1218Marcel Raad (26 Apr 2017)
1219- lib: remove unused code
1220
1221 This fixes the following clang warnings:
1222 macro is not used [-Wunused-macros]
1223 will never be executed [-Wunreachable-code]
1224
1225 Closes https://github.com/curl/curl/pull/1448
1226
1227Daniel Stenberg (26 Apr 2017)
1228- http-proxy: remove unused argument from Curl_proxyCONNECT()
1229
1230- [Martin Kepplinger brought this change]
1231
1232 url: declare get_protocol_family() static
1233
1234 get_protocol_family() is not defined static even though there is a
1235 static local forward declaration. Let's simply make the definition match
1236 it's declaration.
1237
1238 Bug: https://curl.haxx.se/mail/lib-2017-04/0127.html
1239
1240- examples: ftpuploadfrommem.c
1241
1242 Uploads data to an FTP site, directly from memory.
1243
1244 Closes #1451
1245
1246Kamil Dudka (25 Apr 2017)
1247- nss: load libnssckbi.so if no other trust is specified
1248
1249 The module contains a more comprehensive set of trust information than
1250 supported by nss-pem, because libnssckbi.so also includes information
1251 about distrusted certificates.
1252
1253 Reviewed-by: Kai Engert
1254 Closes #1414
1255
1256- nss: factorize out nss_{un,}load_module to separate fncs
1257
1258 No change of behavior is intended by this commit.
1259
1260- nss: do not leak PKCS #11 slot while loading a key
1261
1262 It could prevent nss-pem from being unloaded later on.
1263
1264 Bug: https://bugzilla.redhat.com/1444860
1265
1266Marcel Raad (25 Apr 2017)
1267- typecheck-gcc: fix _curl_is_slist_info
1268
1269 Info values starting with CURLINFO_SOCKET expect a curl_socket_t, not a
1270 curl_slist argument.
1271
1272 This fixes the following GCC warning when building the examples with
1273 --enable-optimize:
1274
1275 ../../include/curl/typecheck-gcc.h:126:42: warning: call to
1276 ‘_curl_easy_getinfo_err_curl_slist’ declared with attribute warning:
1277 curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this
1278 info [enabled by default]
1279 sendrecv.c:90:11: note: in expansion of macro ‘curl_easy_getinfo’
1280 res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd);
1281
1282 Closes https://github.com/curl/curl/pull/1447
1283
1284Daniel Stenberg (25 Apr 2017)
1285- curl: set a 100K buffer size by default
1286
1287 Test command 'time curl http://localhost/80GB -so /dev/null' on a Debian
1288 Linux.
1289
1290 Before (middle performing run out 9):
1291
1292 real 0m28.078s
1293 user 0m11.240s
1294 sys 0m12.876s
1295
1296 After (middle performing run out 9)
1297
1298 real 0m26.356s (93.9%)
1299 user 0m5.324s (47.4%)
1300 sys 0m8.368s (65.0%)
1301
1302 Also, doing SFTP over a 200 millsecond latency link is now about 6 times
1303 faster.
1304
1305 Closes #1446
1306
1307- transfer: remove 'uploadbuf' pointer and cleanup readwrite_upload()
1308
1309 The data->req.uploadbuf struct member served no good purpose, instead we
1310 use ->state.uploadbuffer directly. It makes it clearer in the code which
1311 buffer that's being used.
1312
1313 Removed the 'SingleRequest *' argument from the readwrite_upload() proto
1314 as it can be derived from the Curl_easy struct. Also made the code in
1315 the readwrite_upload() function use the 'k->' shortcut to all references
1316 to struct fields in 'data->req', which previously was made with a mix of
1317 both.
1318
1319Jay Satiro (25 Apr 2017)
1320- configure: stop prepending to LDFLAGS, CPPFLAGS
1321
1322 - Change prepends to appends because user's LDFLAGS and CPPFLAGS should
1323 always come first so they're searched before ours.
1324
1325 Bug: https://github.com/curl/curl/issues/1420
1326 Reported-by: Helmut K. C. Tessarek
1327
1328Marcel Raad (25 Apr 2017)
1329- if2ip: fix -Wcast-align warning
1330
1331 Follow-up to 119037325de02579f5c58256ca2ed2a0aa592c86, which fixed the
1332 warning in the HAVE_GETIFADDRS block, but not in the
1333 HAVE_IOCTL_SIOCGIFADDR block.
1334
1335Dan Fandrich (24 Apr 2017)
1336- Makefile: avoid use of GNU-specific form of $<
1337
1338 $< is only allowed in implicit rules in some non-GNU makes (e.g. BSD,
1339 AIX) so avoid use elsewhere by referencing the dependent curl.1 file
1340 directly instead. This is somewhat tricky because the file is supplied
1341 in the packaged tar ball (but not in git) but must still be able to be
1342 rebuilt when its dependencies change. The right thing must happen in
1343 both tar ball and git source trees, as well as in both in-tree and
1344 out-of-tree builds.
1345
1346Kamil Dudka (24 Apr 2017)
1347- nss: adapt to the new Curl_llist API
1348
1349 This commit fixes compilation failure caused by
1350 cbae73e1dd95946597ea74ccb580c30f78e3fa73.
1351
1352Marcel Raad (24 Apr 2017)
1353- curl-compilers.m4: accept -Og and -Ofast GCC flags
1354
1355 -Og, introduced in GCC 4.8, optimizes for debugging experience.
1356 -Ofast, introduced in GCC 4.7, builds on -O3 and enables further
1357 optimizations breaking strict standards compliance.
1358 When specified in CFLAGS, these were always overridden by -O0 or -O2.
1359 Fix this by adding them to flags_opt_all.
1360
1361 Ref: https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html
1362 Ref: https://github.com/curl/curl/pull/1404#issuecomment-296401570
1363 Closes https://github.com/curl/curl/pull/1440
1364
1365Daniel Stenberg (24 Apr 2017)
1366- RELEASE-NOTES: synced with c68fed875
1367
1368- configure: fix the -ldl check for openssl, add -lpthread check
1369
1370 The check for if -ldl is needed to build with (a statically built)
1371 openssl was broken. This repairs the check, and adds a check for
1372 -lpthread as well since OpenSSL 1.1.0+ does in fact require -lpthread so
1373 only adding -ldl for a static openssl build is no longer enough.
1374
1375 Reported-by: Jay Satiro
1376 Ref: #1426
1377 Closes #1427
1378
1379- llist: fix a comment after cbae73e1dd9
1380
1381 Pointed-it-by: Kevin Ji
1382 URL: https://github.com/curl/curl/commit/cbae73e1dd95946597ea74ccb580c30f78e3fa73#commitcomment-21872622
1383
1384Jay Satiro (22 Apr 2017)
1385- schannel: Don't treat encrypted partial record as pending data
1386
1387 - Track when the cached encrypted data contains only a partial record
1388 that can't be decrypted without more data (SEC_E_INCOMPLETE_MESSAGE).
1389
1390 - Change Curl_schannel_data_pending to return false in such a case.
1391
1392 Other SSL libraries have pending data functions that behave similarly.
1393
1394 Ref: https://github.com/curl/curl/pull/1387
1395
1396 Closes https://github.com/curl/curl/pull/1392
1397
1398Daniel Stenberg (22 Apr 2017)
1399- [Alan Jenkins brought this change]
1400
1401 multi: clarify condition in curl_multi_wait
1402
1403 `if(nfds || extra_nfds) {` is followed by `malloc(nfds * ...)`.
1404
1405 If `extra_fs` could be non-zero when `nfds` was zero, then we have
1406 `malloc(0)` which is allowed to return `NULL`. But, malloc returning
1407 NULL can be confusing. In this code, the next line would treat the NULL
1408 as an allocation failure.
1409
1410 It turns out, if `nfds` is zero then `extra_nfds` must also be zero.
1411 The final value of `nfds` includes `extra_nfds`. So the test for
1412 `extra_nfds` is redundant. It can only confuse the reader.
1413
1414 Closes #1439
1415
1416Marcel Raad (22 Apr 2017)
1417- lib: fix maybe-uninitialized warnings
1418
1419 With -Og, GCC complains:
1420
1421 easy.c:628:7: error: ‘mcode’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
1422
1423 ../lib/strcase.h:35:29: error: ‘tok_buf’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
1424 vauth/digest.c:208:9: note: ‘tok_buf’ was declared here
1425
1426 ../lib/strcase.h:35:29: error: ‘tok_buf’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
1427 vauth/digest.c:566:15: note: ‘tok_buf’ was declared here
1428
1429 Fix this by initializing the variables.
1430
1431Dan Fandrich (22 Apr 2017)
1432- gnutls: removed some code when --disable-verbose is configured
1433
1434 This reduces the binary size and fixes a compile warning.
1435
1436Daniel Stenberg (22 Apr 2017)
1437- llist: no longer uses malloc
1438
1439 The 'list element' struct now has to be within the data that is being
1440 added to the list. Removes 16.6% (tiny) mallocs from a simple HTTP
1441 transfer. (96 => 80)
1442
1443 Also removed return codes since the llist functions can't fail now.
1444
1445 Test 1300 updated accordingly.
1446
1447 Closes #1435
1448
1449Marcel Raad (21 Apr 2017)
1450- typecheck-gcc: handle function pointers properly
1451
1452 All the callbacks passed to curl_easy_setopt are defined as function
1453 pointers. The possibility to pass both functions and function pointers
1454 was handled for the callbacks that typecheck-gcc.h defined as
1455 compatible, but not for the public callback types themselves.
1456
1457 This makes all compatible callback types defined in typecheck-gcc.h
1458 function pointers too and checks all functions uniformly with
1459 _curl_callback_compatible, which handles both functions and function
1460 pointers.
1461
1462 A symptom of the problem was a warning in tool_operate.c with
1463 --disable-libcurl-option and without --enable-debug as that file
1464 passes the callback functions to curl_easy_setopt directly.
1465
1466 Fixes https://github.com/curl/curl/issues/1403
1467 Closes https://github.com/curl/curl/pull/1404
1468
1469Dan Fandrich (21 Apr 2017)
1470- mbedtls: enable NTLM (& SMB) even if MD4 support is unavailable
1471
1472 In that case, use libcurl's internal MD4 routine. This fixes tests 1013
1473 and 1014 which were failing due to configure assuming NTLM and SMB were
1474 always available whenever mbed TLS was in use (which is now true).
1475
1476Daniel Stenberg (21 Apr 2017)
1477- tests: remove the html and PDF versions from the tarball
1478
1479- openssl: fix memory leak in servercert
1480
1481 ... when failing to get the server certificate.
1482
1483- Revert "src/Makefile.am: avoid explicit $<"
1484
1485 This reverts commit 5b4cbcf11d5100ff793a8e9edbaa6fe1fc7495f5.
1486
1487 Since it broke out-of-tree builds from tarballs. See discussion in #1432
1488
1489- bump: start working on next release
1490
1491- src/Makefile.am: avoid explicit $<
1492
1493 ... since apparently "BSD make" doesn't support it.
1494
1495 Reported-by: Thomas Klausner
1496 Fixes #1432
1497
1498Version 7.54.0 (19 Apr 2017)
1499
1500Daniel Stenberg (19 Apr 2017)
1501- THANKS: add contributors from 7.54.0 release notes
1502
1503- RELEASE-NOTES: curl 7.54.0
1504
1505Marcel Raad (18 Apr 2017)
1506- nss: fix MinGW compiler warnings
1507
1508 This fixes 3 warnings issued by MinGW:
1509 1. PR_ImportTCPSocket actually has a paramter of type PROsfd instead of
1510 PRInt32, which is 64 bits on Windows. Fixed this by including the
1511 corresponding header file instead of redeclaring the function, which is
1512 supported even though it is in the private include folder. [1]
1513 2. In 64-bit mode, size_t is 64 bits while CK_ULONG is 32 bits, so an explicit
1514 narrowing cast is needed.
1515 3. Curl_timeleft returns time_t instead of long since commit
1516 21aa32d30dbf319f2d336e0cb68d3a3235869fbb.
1517
1518 [1] https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR/Reference/PR_ImportTCPSocket
1519
1520 Closes https://github.com/curl/curl/pull/1393
1521
1522Daniel Stenberg (18 Apr 2017)
1523- [Jay Satiro brought this change]
1524
1525 TLS: Fix switching off SSL session id when client cert is used
1526
1527 Move the sessionid flag to ssl_primary_config so that ssl and proxy_ssl
1528 will each have their own sessionid flag.
1529
1530 Regression since HTTPS-Proxy support was added in cb4e2be. Prior to that
1531 this issue had been fixed in 247d890, CVE-2016-5419.
1532
1533 Bug: https://github.com/curl/curl/issues/1341
1534 Reported-by: lijian996@users.noreply.github.com
1535
1536 The new incarnation of this bug is called CVE-2017-7468 and is documented
1537 here: https://curl.haxx.se/docs/adv_20170419.html
1538
1539- [David Benjamin brought this change]
1540
1541 openssl: don't try to print nonexistant peer private keys
1542
1543 X.509 certificates carry public keys, not private keys. Fields
1544 corresponding to the private half of the key will always be NULL.
1545
1546 Closes #1425
1547
1548- [David Benjamin brought this change]
1549
1550 openssl: fix thread-safety bugs in error-handling
1551
1552 ERR_error_string with NULL parameter is not thread-safe. The library
1553 writes the string into some static buffer. Two threads doing this at
1554 once may clobber each other and run into problems. Switch to
1555 ERR_error_string_n which avoids this problem and is explicitly
1556 bounds-checked.
1557
1558 Also clean up some remnants of OpenSSL 0.9.5 around here. A number of
1559 comments (fixed buffer size, explaining that ERR_error_string_n was
1560 added in a particular version) date to when ossl_strerror tried to
1561 support pre-ERR_error_string_n OpenSSLs.
1562
1563 Closes #1424
1564
1565- [David Benjamin brought this change]
1566
1567 openssl: make SSL_ERROR_to_str more future-proof
1568
1569 Rather than making assumptions about the values, use a switch-case.
1570
1571 Closes #1424
1572
1573- [Daniel Gustafsson brought this change]
1574
1575 code: fix typos and style in comments
1576
1577 A few random typos, and minor whitespace cleanups, found in comments
1578 while reading code.
1579
1580 Closes #1423
1581
1582Marcel Raad (17 Apr 2017)
1583- extern-scan.pl: strip trailing CR
1584
1585 This makes test 1135 pass with CRLF checkouts.
1586
1587 Ref: https://github.com/curl/curl/pull/1344#issuecomment-289243166
1588 Closes https://github.com/curl/curl/pull/1422
1589
1590- configure.ac: ignore CR after version numbers
1591
1592 Ignore everything after the version numbers in LIBCURL_VERSION and
1593 LIBCURL_VERSION_NUM to ged rid of the extra CR character.
1594 This makes tests 1022 and 1023 pass on Linux with a CRLF checkout.
1595
1596 Ref: https://github.com/curl/curl/pull/1344#issuecomment-289243166
1597 Closes https://github.com/curl/curl/pull/1422
1598
1599- .gitattributes: force shell scripts to LF
1600
1601 Bash on Linux errors out on CR characters.
1602 This makes tests 1221 and 1222 pass on Linux with a CRLF checkout.
1603
1604 Ref: https://github.com/curl/curl/pull/1344#issuecomment-289243166
1605 Closes https://github.com/curl/curl/pull/1422
1606
1607- unit1303: fix compiler warning
1608
1609 MinGW-w64 complains:
1610 warning: conversion to 'long int' from 'time_t {aka long long int}' may
1611 alter its value [-Wconversion]
1612 Fix this by using the correct type.
1613
1614Daniel Stenberg (16 Apr 2017)
1615- RELEASE-NOTES: synced with 1451271e0
1616
1617- [Larry Stefani brought this change]
1618
1619 http2: fix handle leak in error path
1620
1621 Add missing newhandle free call in push_promise().
1622
1623 Closes #1416
1624
1625- [Larry Stefani brought this change]
1626
1627 mbedtls: fix memory leak in error path
1628
1629 Add missing our_ssl_sessionid free call in mbed_connect_step3().
1630
1631 Closes #1417
1632
1633Marcel Raad (15 Apr 2017)
1634- curl-compilers.m4: turn implicit function declarations into errors
1635
1636 This adds -Werror-implicit-function-declaration for GCC 2.95+ so that
1637 these errors are visible at the point where they occur instead of only
1638 at link time.
1639 Implicit function declarations are illegal in C99 and C++ anyway, and
1640 the same warning has been turned into an error for ICC in commit
1641 3072c5b8a127057aa922b7c51051bbb4a630b091.
1642
1643 Ref: https://gcc.gnu.org/onlinedocs/gcc-2.95.2/gcc_2.html#SEC8
1644 Ref: https://curl.haxx.se/mail/lib-2017-04/0001.html
1645 Closes https://github.com/curl/curl/pull/1419
1646
1647- test1541: also test for CURL_PULL_WS2TCPIP_H
1648
1649 Ref: https://github.com/curl/curl/issues/1408
1650 Closes https://github.com/curl/curl/pull/1412
1651
1652- tests/server/util: prefer <poll.h> over <sys/poll.h>
1653
1654 Follow-up to aa573c3c55cda72ec5ef677d87f6f46a53385f0c
1655
1656 Ref: https://github.com/curl/curl/pull/1406
1657
1658Daniel Stenberg (11 Apr 2017)
1659- Curl_expire_latest: ignore already expired timers
1660
1661 If the existing timer is still in there but has expired, the new timer
1662 should be added.
1663
1664 Reported-by: Rainer Canavan
1665 Bug: https://curl.haxx.se/mail/lib-2017-04/0030.html
1666 Closes #1407
1667
1668- system.h: fix mingw section
1669
1670 Reported-by: Marcel Raad
1671 Fixes #1408
1672 Closes #1409
1673
1674Marcel Raad (11 Apr 2017)
1675- polarssl: unbreak build with versions < 1.3.8
1676
1677 ssl_session_init was only introduced in version 1.3.8, the penultimate
1678 version. The function only contains a memset, so replace it with that.
1679
1680 Suggested-by: Jay Satiro
1681 Fixes https://github.com/curl/curl/issues/1401
1682
1683- poll: prefer <poll.h> over <sys/poll.h>
1684
1685 The POSIX standard location is <poll.h>. Using <sys/poll.h> results in
1686 warning spam when using the musl standard library.
1687
1688 Closes https://github.com/curl/curl/pull/1406
1689
1690Daniel Stenberg (10 Apr 2017)
1691- [Alexis La Goutte brought this change]
1692
1693 openssl: fix this statement may fall through [-Wimplicit-fallthrough=]
1694
1695 Closes #1402
1696
1697Kamil Dudka (10 Apr 2017)
1698- nss: load CA certificates even with --insecure
1699
1700 ... because they may include an intermediate certificate for a client
1701 certificate and the intermediate certificate needs to be presented to
1702 the server, no matter if we verify the peer or not.
1703
1704 Reported-by: thraidh
1705 Closes #851
1706
1707Daniel Stenberg (10 Apr 2017)
1708- RELEASE-NOTES: synced with f9d1e9a27f7e1
1709
1710Dan Fandrich (10 Apr 2017)
1711- libcurl-thread.3: fixed a bad macro that caused test 1140 to fail
1712
1713Daniel Stenberg (9 Apr 2017)
1714- libcurl-thread.3: also mention threaded-resolver
1715
1716 Reported-by: Alex Bligh
1717 Bug: https://curl.haxx.se/mail/lib-2017-04/0044.html
1718
1719- .github/stale.yml: enable the stale bot
1720
1721 Issues and PRs with no activity for 180 days will get marked as stale,
1722 and if no further activity happens within 14 more days, the issue gets
1723 closed.
1724
1725 This follows our established policy of not letting stalled bugs "get in
1726 the way": https://curl.haxx.se/docs/bugs.html#Closing_off_stalled_bugs
1727
1728 Closes #1398
1729
1730Jay Satiro (8 Apr 2017)
1731- CURLINFO_SCHEME.3: fix variable type
1732
1733 - Change documented param type to char ** from incorrect long *.
1734
1735Marcel Raad (8 Apr 2017)
1736- INSTALL.md: fix secure transport configure arguments
1737
1738 --without-ssl is needed instead of --with-winssl.
1739
1740- vtls: fix unreferenced variable warnings
1741
1742 ... by moving the variables into the correct #ifdef block.
1743
1744Daniel Stenberg (7 Apr 2017)
1745- BUGS: "Bugs in old versions"
1746
1747- system.h: add section for tcc
1748
1749 Closes #1397
1750
1751Marcel Raad (7 Apr 2017)
1752- schannel: fix compiler warnings
1753
1754 When UNICODE is not defined, the Curl_convert_UTF8_to_tchar macro maps
1755 directly to its argument. As it is declared as a pointer to const and
1756 InitializeSecurityContext expects a pointer to non-const, both MSVC and MinGW
1757 issue a warning about implicitly casting away the const. Fix this by declaring
1758 the variables as pointers to non-const.
1759
1760 Closes https://github.com/curl/curl/pull/1394
1761
1762- [Isaac Boukris brought this change]
1763
1764 sspi: print out InitializeSecurityContext() error message
1765
1766 Reported-by: Carsten (talksinmath)
1767
1768 Fixes #1384
1769 Closes #1395
1770
1771- gtls: fix compiler warning
1772
1773 Curl_timeleft returns time_t instead of long since commit
1774 21aa32d30dbf319f2d336e0cb68d3a3235869fbb.
1775
1776Daniel Stenberg (6 Apr 2017)
1777- test1606: verify speedcheck
1778
1779- low_speed_limit: improved function for longer time periods
1780
1781 Previously, periods of fast speed between periods of slow speed would
1782 not count and could still erroneously trigger a timeout.
1783
1784 Reported-by: Paul Harris
1785 Fixes #1345
1786 Closes #1390
1787
1788- system.h: set sizeof long to 4 on "default 32 bit" systems
1789
1790 Triggered a test failure on test 1541 for the build known as
1791 "Linux 4.4 i686 tcc 0.9.26 glibc 2.20"
1792
1793Marcel Raad (6 Apr 2017)
1794- nss: fix build after e60fe20fdf94e829ba5fce33f7a9d6c281149f7d
1795
1796 Curl_llist_alloc is now Curl_llist_init.
1797
1798 Closes https://github.com/curl/curl/pull/1391
1799
1800Daniel Stenberg (6 Apr 2017)
1801- INSTALL.cmake: more problems
1802
1803 and mention specific issues where they are discussed
1804
1805- test1541: ignore the curl_off_t variable type name comparison
1806
1807 ... the sizes and the formatting strings are what's really important and
1808 avoids problems with int64_t vs "long long".
1809
1810 Bug: https://curl.haxx.se/mail/lib-2017-04/0019.html
1811
1812- Revert "configure: prefer 'long long' to int64_t for curl_off_t"
1813
1814 This reverts commit 81284374bf3c670d2050f8562edeb69f060b07cc.
1815
1816 Due to mingw32 brekage.
1817
1818Marcel Raad (5 Apr 2017)
1819- tool_operate: fix MinGW compiler warning
1820
1821 MinGW complains:
1822 tool_operate.c:197:15: error: comparison is always true due to limited range
1823 of data type [-Werror=type-limits]
1824
1825 Fix this by only doing the comparison if 'long' is large enough to hold the
1826 constant it is compared with.
1827
1828 Closes https://github.com/curl/curl/pull/1378
1829
1830- tool_operate: move filetime code to its own function
1831
1832 Ref: https://github.com/curl/curl/pull/1378
1833
1834Daniel Stenberg (5 Apr 2017)
1835- configure: prefer 'long long' to int64_t for curl_off_t
1836
1837 Since it is a native type and it makes it less complicated to find a
1838 matching one in system.h
1839
1840 Bug: https://curl.haxx.se/mail/lib-2017-04/0010.html
1841 Reported-by: Dan Fandrich
1842
1843 Closes #1388
1844
1845- [Dániel Bakai brought this change]
1846
1847 tests: added test for Curl_splaygetbest to unit1309
1848
1849 This checks the new behavior of Curl_splaygetbest, so that the smallest
1850 node not larger than the key is removed, and FIFO behavior is kept even
1851 when there are multiple nodes with the same key.
1852
1853 Closes #1358
1854
1855- [Dániel Bakai brought this change]
1856
1857 multi: fix queueing of pending easy handles
1858
1859 Multi handles repeatedly invert the queue of pending easy handles when
1860 used with CURLMOPT_MAX_TOTAL_CONNECTIONS. This is caused by a multistep
1861 process involving Curl_splaygetbest and violates the FIFO property of
1862 the multi handle.
1863 This patch fixes this issue by redefining the "best" node in the
1864 context of timeouts as the "smallest not larger than now", and
1865 implementing the necessary data structure modifications to do this
1866 effectively, namely:
1867 - splay nodes with the same key are now stored in a doubly-linked
1868 circular list instead of a non-circular one to enable O(1)
1869 insertion to the tail of the list
1870 - Curl_splayinsert inserts nodes with the same key to the tail of
1871 the same list
1872 - in case of multiple nodes with the same key, the one on the head of
1873 the list gets selected
1874
1875Marcel Raad (4 Apr 2017)
1876- tool: fix Windows Unicode build
1877
1878 ... by explicitly calling the ANSI versions of Windows API functions where
1879 required.
1880
1881Daniel Stenberg (4 Apr 2017)
1882- [Martin Kepplinger brought this change]
1883
1884 curl_sasl: declare mechtable static
1885
1886 struct mechtable is only used locally here. It can be declared static.
1887
1888Jay Satiro (4 Apr 2017)
1889- [Antti Hätälä brought this change]
1890
1891 url: don't free postponed data on connection reuse
1892
1893 - Don't free postponed data on a connection that will be reused since
1894 doing so can cause data loss when pipelining.
1895
1896 Only Windows builds are affected by this.
1897
1898 Closes https://github.com/curl/curl/issues/1380
1899
1900Daniel Stenberg (4 Apr 2017)
1901- RELEASE-NOTES: synced with 4f2e348f9b42c69c480
1902
1903- hash: move key into hash struct to reduce mallocs
1904
1905 This removes one tiny malloc for each hash struct allocated. In a simple
1906 case like "curl localhost", this save three mallocs.
1907
1908 Closes #1376
1909
1910- llist: replace Curl_llist_alloc with Curl_llist_init
1911
1912 No longer allocate the curl_llist head struct for lists separately.
1913
1914 Removes 17 (15%) tiny allocations in a normal "curl localhost" invoke.
1915
1916 closes #1381
1917
1918Jay Satiro (4 Apr 2017)
1919- easy: silence compiler warning
1920
1921 Safe to silence warning adding time delta of poll, which can trigger on
1922 Windows since sizeof time_t > sizeof long.
1923
1924 warning C4244: '+=' : conversion from 'time_t' to 'long', possible loss
1925 of data
1926
1927Daniel Stenberg (4 Apr 2017)
1928- [Richlv brought this change]
1929
1930 docs: minor typo in write-out.d
1931
1932 Closes #1382
1933
1934- include: curl/system.h is a run-time version of curlbuild.h
1935
1936 system.h is aimed to replace curlbuild.h at a later point in time when
1937 we feel confident system.h works sufficiently well.
1938
1939 curl/system.h is currently used in parallel with curl/curlbuild.h
1940
1941 curl/system.h determines a data sizes, data types and include file
1942 status based on available preprocessor defines instead of getting
1943 generated at build-time. This, in order to avoid relying on a build-time
1944 generated file that makes it complicated to do 32 and 64 bit bields from
1945 the same installed set of headers.
1946
1947 Test 1541 verifies that system.h comes to the same conclusion that
1948 curlbuild.h offers.
1949
1950 Closes #1373
1951
1952- multi: make curl_multi_wait avoid malloc in the typical case
1953
1954 When only a few additional file descriptors are used, avoid the malloc.
1955
1956 Closes #1377
1957
1958Marcel Raad (3 Apr 2017)
1959- tests/server/util: remove in6addr_any for recent MinGW
1960
1961 In ancient MinGW versions, in6addr_any was declared as extern, but not
1962 defined. Because of that, 22a0c57746ae12506b1ba0f0fafffd26c1907d6a added
1963 definitions for in6addr_any when compiling with MinGW. The bug was fixed in
1964 w32api version 3.6 from 2006, so this workaround is not needed anymore for
1965 recent versions.
1966
1967 This fixes the following MinGW-w64 warnings because the MinGW-w64 version of
1968 IN6ADDR_ANY_INIT has the two additional braces inside the macro:
1969 util.c:59:14: warning: braces around scalar initializer
1970 util.c:59:40: warning: excess elements in scalar initializer
1971
1972 Ref: https://sourceforge.net/p/mingw/mingw-org-wsl/ci/e4803e0da25c57ae1ad0fa75ae2b7182ff7fa339/tree/w32api/ChangeLog
1973 Closes https://github.com/curl/curl/pull/1379
1974
1975Daniel Stenberg (3 Apr 2017)
1976- docs: added examples for CURLINFO_FILETIME.3 and CURLOPT_FILETIME.3
1977
1978Jay Satiro (31 Mar 2017)
1979- fail-early.d: fix typos
1980
1981- docs: Explain --fail-early does not imply --fail
1982
1983 Closes https://github.com/curl/curl/pull/1375
1984
1985Daniel Stenberg (1 Apr 2017)
1986- telnet: (win32) fix read callback return variable
1987
1988 telnet.c(1427,21): warning: comparison of constant 268435456 with
1989 expression of type 'CURLcode' is always false
1990
1991 telnet.c(1433,21): warning: comparison of constant 268435457 with
1992 expression of type 'CURLcode' is always false
1993
1994 Reviewed-by: Jay Satiro
1995 Reported-by: Gisle Vanem
1996 Bug: https://github.com/curl/curl/issues/1225#issuecomment-290340890
1997
1998 Closes #1374
1999
2000- CTestConfig.cmake: removed, unused
2001
2002- libcurl.def: removed, unused
2003
2004- docs/index.html: removed, was not shipped anyway
2005
2006- dist: add missing files to the tarball
2007
2008Peter Wu (30 Mar 2017)
2009- cmake: fix build with cmake 2.8.12.2
2010
2011 For some reason, CMake 2.8.12.2 did not expand the list argument in a
2012 single DEPENDS argument. Remove the quotes, so it gets expanded into
2013 multiple arguments for add_custom_command and add_custom_target.
2014
2015 Fixes https://github.com/curl/curl/issues/1370
2016 Closes #1372
2017
2018Marcel Raad (30 Mar 2017)
2019- ssh: fix narrowing conversion warning
2020
2021 'left' is used as time_t but declared as long.
2022 MinGW complains:
2023 error: conversion to 'long int' from 'time_t {aka long long int}' may alter
2024 its value [-Werror=conversion]
2025 Changed the declaration to time_t.
2026
2027- http2: silence unused parameter warnings
2028
2029 In release mode, MinGW complains:
2030 error: unused parameter 'lib_error_code' [-Werror=unused-parameter]
2031
2032Daniel Stenberg (30 Mar 2017)
2033- [Hanno Böck brought this change]
2034
2035 curl: fix callback functions to match prototype
2036
2037 The function tool_debug_cb doesn't match curl_debug_callback in curl.h
2038 (unsigned vs. signed char* for 3rd param).
2039
2040 Bug: https://curl.haxx.se/mail/lib-2017-03/0120.html
2041
2042- [Alexis La Goutte brought this change]
2043
2044 gcc7: fix ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
2045
2046 Closes #1371
2047
2048Marcel Raad (30 Mar 2017)
2049- schannel: fix unused variable warning
2050
2051 If CURL_DISABLE_VERBOSE_STRINGS is defined, hostname is not used in
2052 schannel_connect_step3.
2053
2054- connect: fix unreferenced parameter warning
2055
2056 When CURL_DISABLE_VERBOSE_STRINGS is defined, the reason parameter in
2057 Curl_conncontrol is not used as the infof macro expands to nothing.
2058
2059- select: use correct SIZEOF_ constant
2060
2061 At least under Windows, there is no SIZEOF_LONG, so it evaluates to 0 even
2062 though sizeof(int) == sizeof(long). This should probably have been
2063 CURL_SIZEOF_LONG, but the type of timeout_ms changed from long to time_t
2064 anyway.
2065 This triggered MSVC warning C4668 about implicitly replacing undefined
2066 macros with '0'.
2067
2068 Closes https://github.com/curl/curl/pull/1362
2069
2070Daniel Stenberg (30 Mar 2017)
2071- cmake: add cmake file in docs/libcurl/opts/ to dist
2072
2073- cmake: add more missing files to the dist
2074
2075- docs/Makefile.am: include CMakeLists.txt in the dist tarball
2076
2077Marcel Raad (29 Mar 2017)
2078- NTLM: check for features with #ifdef instead of #if
2079
2080 Feature defines are normally checked with #ifdef instead of #if in the rest of
2081 the codebase. Additionally, some compilers warn when a macro is implicitly
2082 evaluated to 0 because it is not defined, which was the case here.
2083
2084 Ref: https://github.com/curl/curl/pull/1362#discussion_r108605101
2085 Closes https://github.com/curl/curl/pull/1367
2086
2087Daniel Stenberg (29 Mar 2017)
2088- [Hanno Böck brought this change]
2089
2090 curl: fix callback argument inconsistency
2091
2092 As you can see the callback definition uses a char* for the first
2093 argument, while the function uses a void*.
2094
2095 URL: https://curl.haxx.se/mail/lib-2017-03/0116.html
2096
2097- RELEASE-NOTES: synced with 556c51a2df
2098
2099- [madblobfish brought this change]
2100
2101 KNOWN_BUGS: typo
2102
2103 Closes #1364
2104
2105- [Maksim Stsepanenka brought this change]
2106
2107 make: use the variable MAKE for recursive calls
2108
2109 Closes #1366
2110
2111- conncache: make hashkey avoid malloc
2112
2113 ... to make it much faster. Idea developed with primepie on IRC.
2114
2115 Closes #1365
2116
2117Kamil Dudka (28 Mar 2017)
2118- http: do not treat FTPS over CONNECT as HTTPS
2119
2120 If we use FTPS over CONNECT, the TLS handshake for the FTPS control
2121 connection needs to be initiated in the SENDPROTOCONNECT state, not
2122 the WAITPROXYCONNECT state. Otherwise, if the TLS handshake completed
2123 without blocking, the information about the completed TLS handshake
2124 would be saved to a wrong flag. Consequently, the TLS handshake would
2125 be initiated in the SENDPROTOCONNECT state once again on the same
2126 connection, resulting in a failure of the TLS handshake. I was able to
2127 observe the failure with the NSS backend if curl ran through valgrind.
2128
2129 Note that this commit partially reverts curl-7_21_6-52-ge34131d.
2130
2131Daniel Stenberg (28 Mar 2017)
2132- pause: handle mixed types of data when paused
2133
2134 When receiving chunked encoded data with trailers, and the write
2135 callback returns PAUSE, there might be both body and header to store to
2136 resend on unpause. Previously libcurl returned error for that case.
2137
2138 Added test case 1540 to verify.
2139
2140 Reported-by: Stephen Toub
2141 Fixes #1354
2142 Closes #1357
2143
2144Jay Satiro (28 Mar 2017)
2145- [Isaac Boukris brought this change]
2146
2147 http: Fix proxy connection reuse with basic-auth
2148
2149 When using basic-auth, connections and proxy connections
2150 can be re-used with different Authorization headers since
2151 it does not authenticate the connection (like NTLM does).
2152
2153 For instance, the below command should re-use the proxy
2154 connection, but it currently doesn't:
2155 curl -v -U alice:a -x http://localhost:8181 http://localhost/
2156 --next -U bob:b -x http://localhost:8181 http://localhost/
2157
2158 This is a regression since refactoring of ConnectionExists()
2159 as part of: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151
2160
2161 Fix the above by removing the username and password compare
2162 when re-using proxy connection at proxy_info_matches().
2163
2164 However, this fix brings back another bug would make curl
2165 to re-print the old proxy-authorization header of previous
2166 proxy basic-auth connection because it wasn't cleared.
2167
2168 For instance, in the below command the second request should
2169 fail if the proxy requires authentication, but would succeed
2170 after the above fix (and before aforementioned commit):
2171 curl -v -U alice:a -x http://localhost:8181 http://localhost/
2172 --next -x http://localhost:8181 http://localhost/
2173
2174 Fix this by clearing conn->allocptr.proxyuserpwd after use
2175 unconditionally, same as we do for conn->allocptr.userpwd.
2176
2177 Also fix test 540 to not expect digest auth header to be
2178 resent when connection is reused.
2179
2180 Signed-off-by: Isaac Boukris <iboukris@gmail.com>
2181
2182 Closes https://github.com/curl/curl/pull/1350
2183
2184- openssl: exclude DSA code when OPENSSL_NO_DSA is defined
2185
2186 - Fix compile errors that occur in openssl.c when OpenSSL lib was
2187 built without DSA support.
2188
2189 Bug: https://github.com/curl/curl/issues/1361
2190 Reported-by: neheb@users.noreply.github.com
2191
2192- examples/fopen: checksrc compliance
2193
2194Marcel Raad (28 Mar 2017)
2195- schannel: fix variable shadowing warning
2196
2197 No need to redeclare the variable.
2198
2199- multi: fix MinGW-w64 compiler warnings
2200
2201 error: conversion to 'long int' from 'time_t {aka long long int}' may alter
2202 its value [-Werror=conversion]
2203
2204- .gitattributes: turn off CRLF for *.am
2205
2206 If Makefile.am uses CRLF, buildconf in a Windows checkout fails with:
2207 ".ibtoolize: error: AC_CONFIG_MACRO_DIRS([m4]) conflicts with
2208 ACLOCAL_AMFLAGS=-I m4"
2209
2210Daniel Stenberg (26 Mar 2017)
2211- [klemens brought this change]
2212
2213 spelling fixes
2214
2215 Closes #1356
2216
2217- curl: check for end of input in writeout backslash handling
2218
2219 Reported-by: Brian Carpenter
2220
2221 Added test 1442 to verify
2222
2223Marcel Raad (24 Mar 2017)
2224- tests/README: make "Run" section foolproof
2225
2226 curl must be built before building the tests.
2227
2228 Closes https://github.com/curl/curl/pull/1352
2229
2230Daniel Stenberg (23 Mar 2017)
2231- openssl: fix comparison between signed and unsigned integer expressions
2232
2233Marcel Raad (23 Mar 2017)
2234- [Edward Kimmel brought this change]
2235
2236 asiohiper: make sure socket is open in event_cb
2237
2238 Send curl_socket_t to event_cb and make sure it hasn't been closed yet.
2239
2240 Closes https://github.com/curl/curl/pull/1318
2241
2242Dan Fandrich (23 Mar 2017)
2243- openssl: made the error table static const
2244
2245Jay Satiro (23 Mar 2017)
2246- openssl: fall back on SSL_ERROR_* string when no error detail
2247
2248 - If SSL_get_error is called but no extended error detail is available
2249 then show that SSL_ERROR_* as a string.
2250
2251 Prior to this change there was some inconsistency in that case: the
2252 SSL_ERROR_* code may or may not have been shown, or may have been shown
2253 as unknown even if it was known.
2254
2255 Ref: https://github.com/curl/curl/issues/1300
2256
2257 Closes https://github.com/curl/curl/pull/1348
2258
2259Dan Fandrich (23 Mar 2017)
2260- mkhelp: disable compression if the perl gzip module is unavailable
2261
2262 This is nowadays included with the base perl distribution, but wasn't
2263 prior to about perl 5.14
2264
2265Daniel Stenberg (23 Mar 2017)
2266- [Anders Roxell brought this change]
2267
2268 tests/README: mention nroff for --manual tests
2269
2270 Signed-off-by: Anders Roxell <anders.roxell@gmail.com>
2271
2272 Closes #1342
2273
2274- CURLINFO_PRIMARY_IP.3: add example
2275
2276- travis: run tests-nonflaky instead of tests-full
2277
2278- make: introduce 'test-nonflaky' target
2279
2280 Running this in the root build dir will invoke the test suite to only
2281 run tests not marked as 'flaky'.
2282
2283- test2033: flaky
2284
2285Jay Satiro (21 Mar 2017)
2286- [Ales Mlakar brought this change]
2287
2288 mbedtls: add support for CURLOPT_SSL_CTX_FUNCTION
2289
2290 Ref: https://curl.haxx.se/mail/lib-2017-02/0097.html
2291
2292 Closes https://github.com/curl/curl/pull/1272
2293
2294Peter Wu (21 Mar 2017)
2295- cmake: add support for building HTML and PDF docs
2296
2297 Note that for some reason there is this warning (that also exists with
2298 autotools, added since curl-7_15_1-94-ga718cb05f):
2299
2300 docs/libcurl/curl_multi_socket_all.3:1: can't open `man3/curl_multi_socket.3': No such file or directory
2301
2302 Additionally, adjust the roffit --mandir option to support creating
2303 links when doing out-of-tree builds.
2304
2305 Ref: https://github.com/curl/curl/pull/1288
2306
2307- cmake: build manual pages (including curl.1)
2308
2309 Also make Perl mandatory to allow building the docs.
2310
2311 While CMakeLists.txt could probably read the list of manual pages from
2312 Makefile.am, actually putting those in CMakeLists.txt is cleaner so that
2313 is what is done here.
2314
2315 Fixes #1230
2316 Ref: https://github.com/curl/curl/pull/1288
2317
2318- docs: split file lists into Makefile.inc
2319
2320 For easier sharing with CMake. The contents were reformatted to use
2321 two-space indent and expanded tabs (matching lib/Makefile.common).
2322
2323 Ref: https://github.com/curl/curl/pull/1288
2324
2325Daniel Stenberg (21 Mar 2017)
2326- examples: comment typos in http2 examples
2327
2328- RELEASE-NOTES: typo
2329
2330- RELEASE-NOTES: synced with 6e0f26c8a8c28df
2331
2332- multi: fix streamclose() crash in debug mode
2333
2334 The code would refer to the wrong data pointer. Only debug builds do
2335 this - for verbosity.
2336
2337 Reported-by: zelinchen@users.noreply.github.com
2338 Fixes #1329
2339
2340- CONTRIBUTE: mention referring to github issues in commit msgs
2341
2342Dan Fandrich (20 Mar 2017)
2343- runtests.pl: fixed display of the Gopher IPv6 port number
2344
2345- tests: fixed the documented test server port numbers
2346
2347- test714/5: added HTTP as a required feature
2348
2349 These tests use an HTTP proxy so require that curl be built with HTTP
2350 support.
2351
2352- tests: strip more options from non-HTTP --libcurl tests
2353
2354 The CURLOPT_USERAGENT and CURLOPT_MAXREDIRS options are only set if HTTP
2355 support is available, so ignore them in tests where HTTP is not
2356 guaranteed.
2357
2358Jay Satiro (18 Mar 2017)
2359- [Palo Markovic brought this change]
2360
2361 darwinssl: fix typo in variable name
2362
2363 Broken a week ago in 6448f98.
2364
2365 Closes https://github.com/curl/curl/pull/1337
2366
2367- tool_operate: Fix showing HTTPS-Proxy options on CURLE_SSL_CACERT
2368
2369 - Show the HTTPS-proxy options on CURLE_SSL_CACERT if libcurl was built
2370 with HTTPS-proxy support.
2371
2372 Prior to this change those options were shown only if an HTTPS-proxy was
2373 specified by --proxy, but that did not take into account environment
2374 variables such as http_proxy, https_proxy, etc. Follow-up to e1187c4.
2375
2376 Bug: https://github.com/curl/curl/issues/1331
2377 Reported-by: Nehal J Wani
2378
2379- CURLINFO_LOCAL_PORT.3: fix typo
2380
2381Daniel Stenberg (16 Mar 2017)
2382- CURLINFO_LOCAL_PORT.3: added example
2383
2384- SSLCERTS.md: mention HTTPS proxies and their separate options
2385
2386- BINDINGS: a Delphi binding
2387
2388- KNOWN_BUGS: remove libidn related issue
2389
2390 ... as we no longer use libidn
2391
2392Dan Fandrich (14 Mar 2017)
2393- build: removed redundant DEPENDENCIES from makefiles
2394
2395Daniel Stenberg (13 Mar 2017)
2396- [Sylvestre Ledru brought this change]
2397
2398 Improve code readbility
2399
2400 ... by removing the else branch after a return, break or continue.
2401
2402 Closes #1310
2403
2404Jay Satiro (13 Mar 2017)
2405- [Anatol Belski brought this change]
2406
2407 winbuild: add basic support for OpenSSL 1.1.x
2408
2409 - Auto-detect OpenSSL 1.1 libs
2410
2411 Closes https://github.com/curl/curl/pull/1322
2412
2413Daniel Stenberg (13 Mar 2017)
2414- RELEASE-NOTES: synced with c25e0761d0fc49c4
2415
2416- make: regenerate docs/curl.1 by runinng make in docs
2417
2418 ... previously, docs/ was only a dist subdir, now also a build subdir.
2419
2420 Reported-by: Dan Fandrich
2421 Bug: https://curl.haxx.se/mail/lib-2017-03/0017.html
2422
2423Dan Fandrich (12 Mar 2017)
2424- test1440/1: depend on well-defined file: behaviour
2425
2426 Depend on the known behaviour of URLs for nonexistent files rather than
2427 the undefined behaviour of URLs for directories (which fails on Windows).
2428 The test isn't about file: URLs at all, so the URL used doesn't really
2429 matter.
2430
2431- tests: clear the SSL_CERT_FILE variable on --libcurl tests
2432
2433 Otherwise, the contents will end up in the output and fail the
2434 verification.
2435
2436- test1287: added verbose logs keyword
2437
2438- tool_writeout: fixed a buffer read overrun on --write-out
2439
2440 If a % ended the statement, the string's trailing NUL would be skipped
2441 and memory past the end of the buffer would be accessed and potentially
2442 displayed as part of the --write-out output. Added tests 1440 and 1441
2443 to check for this kind of condition.
2444
2445 Reported-by: Brian Carpenter
2446
2447Jay Satiro (12 Mar 2017)
2448- [Desmond O. Chang brought this change]
2449
2450 url: add option CURLOPT_SUPPRESS_CONNECT_HEADERS
2451
2452 - Add new option CURLOPT_SUPPRESS_CONNECT_HEADERS to allow suppressing
2453 proxy CONNECT response headers from the user callback functions
2454 CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION.
2455
2456 - Add new tool option --suppress-connect-headers to expose
2457 CURLOPT_SUPPRESS_CONNECT_HEADERS and allow suppressing proxy CONNECT
2458 response headers from --dump-header and --include.
2459
2460 Assisted-by: Jay Satiro
2461 Assisted-by: CarloCannas@users.noreply.github.com
2462 Closes https://github.com/curl/curl/pull/783
2463
2464- http_proxy: Ignore TE and CL in CONNECT 2xx responses
2465
2466 A client MUST ignore any Content-Length or Transfer-Encoding header
2467 fields received in a successful response to CONNECT.
2468 "Successful" described as: 2xx (Successful). RFC 7231 4.3.6
2469
2470 Prior to this change such a case would cause an error.
2471
2472 In some ways this bug appears to be a regression since c50b878. Prior to
2473 that libcurl may have appeared to function correctly in such cases by
2474 acting on those headers instead of causing an error. But that behavior
2475 was also incorrect.
2476
2477 Bug: https://github.com/curl/curl/issues/1317
2478 Reported-by: mkzero@users.noreply.github.com
2479
2480- [Thomas Glanzmann brought this change]
2481
2482 mbedtls: fix typo in variable name
2483
2484 Broken a few days ago in 6448f98.
2485
2486 Bug: https://curl.haxx.se/mail/lib-2017-03/0015.html
2487
2488Michael Kaufmann (11 Mar 2017)
2489- tests: fix the authretry tests
2490
2491 Do not call curl_easy_reset() between the requests, because the
2492 auth state must be preserved for these tests.
2493
2494 Follow-up to 0afbcfd
2495
2496- proxy: skip SSL initialization for closed connections
2497
2498 This prevents a "Descriptor is not a socket" error for WinSSL.
2499
2500 Reported-by: Antony74@users.noreply.github.com
2501 Reviewed-by: Jay Satiro
2502
2503 Fixes https://github.com/curl/curl/issues/1239
2504
2505- curl_easy_reset: Also reset the authentication state
2506
2507 Follow-up to 5278462
2508 See https://github.com/curl/curl/issues/1095
2509
2510- [Isaac Boukris brought this change]
2511
2512 authneg: clear auth.multi flag at http_done
2513
2514 This flag is meant for the current request based on authentication
2515 state, once the request is done we can clear the flag.
2516
2517 Also change auth.multi to auth.multipass for better readability.
2518
2519 Fixes https://github.com/curl/curl/issues/1095
2520 Closes https://github.com/curl/curl/pull/1326
2521
2522 Signed-off-by: Isaac Boukris <iboukris@gmail.com>
2523 Reported-by: Michael Kaufmann
2524
2525Dan Fandrich (11 Mar 2017)
2526- url: don't compile detect_proxy if HTTP support is disabled
2527
2528- cmdline-opts: fixed a few typos
2529
2530Daniel Stenberg (10 Mar 2017)
2531- README.md: add coverity and travis badges
2532
2533- ISSUE_TEMPLATE: for bugs, ask questions on the mailing list
2534
2535 and try to add the top comment within an HTML comment in the hope
2536 that it might get hidden if the text is kept
2537
2538- openssl: add two /* FALLTHROUGH */ to satisfy coverity
2539
2540 CID 1402159 and 1402158
2541
2542- tests: disabled 1903 now
2543
2544 Test 1903 is doing HTTP pipelining, and that is a timing and ordering
2545 sensitive operation and this fails far too often on the Travis CI
2546 leading to people more or less ignoring test failures there. Not good.
2547
2548 The end of pipelning is probably coming sooner rather than later
2549 anyway...
2550
2551Dan Fandrich (9 Mar 2017)
2552- tls-max.d: added to the makefile
2553
2554- build: fixed making man page in out-of-tree tarball builds
2555
2556 The man page taken from the release package is found in a different
2557 location than if it's built from source. It must be referenced as $< in
2558 the rule to get its correct location in the VPATH.
2559
2560- mkhelp: simplified the gzip code
2561
2562 This eliminates the need for an external gzip program, which wasn't
2563 working with Busybox's gzip, anyway. It now compresses using perl's
2564 IO::Compress::Gzip
2565
2566- polarssl: fixed compile errors introduced in 6448f98c
2567
2568Daniel Stenberg (8 Mar 2017)
2569- bump: next release will be known as 7.54.0
2570
2571 ...due to the newly added CURL_SSLVERSION_MAX_* functionality
2572
2573- openssl: unbreak the build after 6448f98c1857de
2574
2575 Verified with OpenSSL 1.1.0e and OpenSSL master (1.1.1)
2576
2577Kamil Dudka (8 Mar 2017)
2578- [Jozef Kralik brought this change]
2579
2580 vtls: add options to specify range of enabled TLS versions
2581
2582 This commit introduces the CURL_SSLVERSION_MAX_* constants as well as
2583 the --tls-max option of the curl tool.
2584
2585 Closes https://github.com/curl/curl/pull/1166
2586
2587Daniel Stenberg (8 Mar 2017)
2588- RELEASE-NOTES: synced with 6888a670aa01
2589
2590- MANPAGE: clarify the dash situation in meta data
2591
2592- insecure.d: clarify that this is for server connections
2593
2594 Assisted-by: Ray Satiro
2595 Bug: https://curl.haxx.se/mail/lib-2017-03/0002.html
2596
2597Dan Fandrich (8 Mar 2017)
2598- test1260: added http as a required feature
2599
2600Daniel Stenberg (7 Mar 2017)
2601- [Steve Brokenshire brought this change]
2602
2603 maketgz: Run updatemanpages.pl to update man pages
2604
2605 maketgz now runs scripts/updatemanpages.pl to update the man pages .TH
2606 section to use the current date and curl/libcurl version.
2607
2608 (TODO Section 3.1)
2609
2610 Closes #1058
2611
2612- [Steve Brokenshire brought this change]
2613
2614 gitignore: Ignore man page dist files
2615
2616 Ignore man page dist files generated by scripts/updatemanpages.pl
2617
2618- [Steve Brokenshire brought this change]
2619
2620 Makefile.am: Remove distribution man pages when running 'make clean'
2621
2622- [Steve Brokenshire brought this change]
2623
2624 Makefile.am: Added scripts/updatemanpages.pl to EXTRA_DIST
2625
2626- [Steve Brokenshire brought this change]
2627
2628 updatemanpages.pl: Update man pages to use current date and versions
2629
2630 Added script to update man pages to use the current date and
2631 curl/libcurl versions.
2632
2633 updatemanpages.pl has three arrays: list of directories to look in,
2634 list of extensions to process, list of files to exclude from
2635 processing.
2636
2637 Check man page in git repoistory using the date from the existing man
2638 page before updating to avoid updating the man page if no change is
2639 made.
2640
2641 If data is received from the git command then update the man page with
2642 the current date and version otherwise leave alone.
2643
2644 Applied patch from badger to make the date argument optional, change the
2645 git command used, added date argument to processfile subroutine and
2646 print to STDERR if no date is found in a man page.
2647
2648 Added code to process the changed man page into a new man page with
2649 .dist added to the filename to keep the original source files unchanged.
2650 Updated POD documentation to reflect that the date argument optional.
2651
2652 Code style is in line with CODE_STYLE.md.
2653
2654 Directories: docs/ docs/libcurl/ docs/libcurl/opts/ tests/
2655 Extensions: .1 .3
2656 Excluded files: mk-ca-bundle.1 template.3
2657
2658 (TODO Section 3.1)
2659
2660- [Tatsuhiro Tsujikawa brought this change]
2661
2662 http2: Fix assertion error on redirect with CL=0
2663
2664 This fixes assertion error which occurs when redirect is done with 0
2665 length body via HTTP/2, and the easy handle is reused, but new
2666 connection is established due to hostname change:
2667
2668 curl: http2.c:1572: ssize_t http2_recv(struct connectdata *,
2669 int, char *, size_t, CURLcode *):
2670 Assertion `httpc->drain_total >= data->state.drain' failed.
2671
2672 To fix this bug, ensure that http2_handle_stream is called.
2673
2674 Fixes #1286
2675 Closes #1302
2676
2677- ares: Curl_resolver_wait_resolv: clear *entry first in function
2678
2679- ares: better error return on timeouts
2680
2681 Assisted-by: Ray Satiro
2682
2683 Bug: https://curl.haxx.se/mail/lib-2017-03/0009.html
2684
2685Jay Satiro (6 Mar 2017)
2686- KNOWN_BUGS: Add DarwinSSL won't import PKCS#12 without a password
2687
2688 Bug: https://github.com/curl/curl/issues/1308
2689 Reported-by: Justin Clift
2690
2691Dan Fandrich (6 Mar 2017)
2692- test1260: removed errant XML tag
2693
2694Daniel Stenberg (6 Mar 2017)
2695- URL: return error on malformed URLs with junk after port number
2696
2697 ... because it causes confusion with users. Example URLs:
2698
2699 "http://[127.0.0.1]:11211:80" which a lot of languages' URL parsers will
2700 parse and claim uses port number 80, while libcurl would use port number
2701 11211.
2702
2703 "http://user@example.com:80@localhost" which by the WHATWG URL spec will
2704 be treated to contain user name 'user@example.com' but according to
2705 RFC3986 is user name 'user' for the host 'example.com' and then port 80
2706 is followed by "@localhost"
2707
2708 Both these formats are now rejected, and verified so in test 1260.
2709
2710 Reported-by: Orange Tsai
2711
2712- BINDINGS: update the Lua-cURL URL
2713
2714- [Sylvestre Ledru brought this change]
2715
2716 BINDINGS: add Scilab binding
2717
2718 Closes #1312
2719
2720- BINDINGS: add go-curl and perl6-net-curl
2721
2722 Reported-by: Peter Pentchev
2723
2724- BINDINGS: add misssing C++ bindings
2725
2726 Reported-by: Giuseppe Persico
2727
2728- ares: return error at once if timed out before name resolve starts
2729
2730 Pointed-out-by: Ray Satiro
2731 Bug: https://curl.haxx.se/mail/lib-2017-03/0004.html
2732
2733Peter Wu (5 Mar 2017)
2734- [Michael Maltese brought this change]
2735
2736 CMake: Set at most one SSL library
2737
2738 Ref: https://github.com/curl/curl/pull/1228
2739
2740- [Michael Maltese brought this change]
2741
2742 CMake: Add mbedTLS support
2743
2744 Ref: https://github.com/curl/curl/pull/1228
2745
2746- [Michael Maltese brought this change]
2747
2748 CMake: Add DarwinSSL support
2749
2750 Assisted-by: Simon Warta <simon@kullo.net>
2751 Ref: https://github.com/curl/curl/pull/1228
2752
2753- [Michael Maltese brought this change]
2754
2755 CMake: Reorganize SSL support, separate WinSSL and SSPI
2756
2757 This is closer to how configure.ac does it
2758
2759 Ref: https://github.com/curl/curl/pull/1228
2760
2761Jay Satiro (4 Mar 2017)
2762- CURLOPT_SSL_CTX_FUNCTION.3: Fix EXAMPLE formatting errors
2763
2764 .. also document that CURLE_NOT_BUILT_IN is a RETURN VALUE.
2765
2766 Ref: https://github.com/curl/curl/pull/1290
2767
2768Daniel Stenberg (4 Mar 2017)
2769- [Andrew Krieger brought this change]
2770
2771 fix potential use of uninitialized variables
2772
2773 MSVC with LTCG detects this at warning level 4.
2774
2775 Closes #1304
2776
2777Dan Fandrich (4 Mar 2017)
2778- [Sylvestre Ledru brought this change]
2779
2780 fix some typos in the doc (#1306)
2781
2782- tests: fixed a typo in some comments
2783
2784Jay Satiro (3 Mar 2017)
2785- url: split off proxy init and parsing from create_conn
2786
2787 Move the proxy parse/init into helper create_conn_helper_init_proxy to
2788 mitigate the chances some non-proxy code will be mistakenly added to it.
2789
2790 Ref: https://github.com/curl/curl/issues/1274#issuecomment-281556510
2791 Ref: https://github.com/curl/curl/pull/1293
2792
2793 Closes https://github.com/curl/curl/pull/1298
2794
2795- [Alexis La Goutte brought this change]
2796
2797 build: fix gcc7 implicit fallthrough warnings
2798
2799 Mark intended fallthroughs with /* FALLTHROUGH */ so that gcc will know
2800 it's expected and won't warn on [-Wimplicit-fallthrough=].
2801
2802 Closes https://github.com/curl/curl/pull/1297
2803
2804- [Greg Rowe brought this change]
2805
2806 configure: fix --with-zlib when a path is specified
2807
2808 Prior to this change if you attempted to configure curl using
2809 --wtih-zlib and specified a path the path would be ignored if you also
2810 had pkg-config installed on your system. This situation can easily
2811 arise when you are cross compiling. This change moves the test for
2812 detecting zlib settings via pkg-config only if OPT_ZLIB is not set.
2813
2814 Closes https://github.com/curl/curl/pull/1292
2815
2816- [c4rlo brought this change]
2817
2818 no-keepalive.d: fix typo
2819
2820 Closes https://github.com/curl/curl/pull/1301
2821
2822- checksrc.bat: Ignore curl_config.h.in, curl_config.h
2823
2824- configure: fix for --enable-pthreads
2825
2826 Better handle options conflicts that can occur if --enable-pthreads.
2827
2828 Bug: https://github.com/curl/curl/pull/1295
2829 Reported-by: Marc-Antoine Perennou
2830
2831- [JDepooter brought this change]
2832
2833 darwinssl: Warn that disabling host verify also disables SNI
2834
2835 In DarwinSSL the SSLSetPeerDomainName function is used to enable both
2836 sending SNI and verifying the host. When host verification is disabled
2837 the function cannot be called, therefore SNI is disabled as well.
2838
2839 Closes https://github.com/curl/curl/pull/1240
2840
2841Marcel Raad (28 Feb 2017)
2842- warnless: suppress compiler warning
2843
2844 If size_t is 32 bits, MSVC warns:
2845 warning C4310: cast truncates constant value
2846 The warning is harmless as CURL_MASK_SCOFFT gets
2847 truncated to the maximum value of size_t.
2848
2849Dan Fandrich (27 Feb 2017)
2850- tests: enable HTTP/2 tests to run with non-default port numbers
2851
2852Marcel Raad (27 Feb 2017)
2853- digest_sspi: fix compilation warning
2854
2855 MSVC complains:
2856 warning C4701: potentially uninitialized local variable 'output_token_len' used
2857
2858Jay Satiro (26 Feb 2017)
2859- cyassl: get library version string at runtime
2860
2861 wolfSSL >= 3.6.0 supports getting its library version string at runtime.
2862
2863Dan Fandrich (26 Feb 2017)
2864- test1139: allow for the possibility that the man page is not rebuilt
2865
2866 This is likely to be the case when building from a tar ball release
2867 package which includes a prebuilt man page. In that case, test the
2868 packaged man page instead. This only makes a difference when building
2869 out-of-tree (in-tree, the location in both cases is identical).
2870
2871Jay Satiro (25 Feb 2017)
2872- [Isaac Boukris brought this change]
2873
2874 url: fix unix-socket support for proxy-disabled builds
2875
2876 Prior to this change if curl was built with Unix Socket support
2877 (--enable-unix-sockets) and without Proxy support (--disable-proxy) then
2878 unix socket options would erroneously be ignored.
2879
2880 Regression introduced in:
2881 0b8d682f81ee9acb763dd4c9ad805fe08d1227c0
2882
2883 Bug: https://github.com/curl/curl/issues/1274
2884 Reported-by: mccormickt12@users.noreply.github.com
2885
2886 Closes https://github.com/curl/curl/pull/1289
2887
2888Dan Fandrich (26 Feb 2017)
2889- gopher: fixed detection of an error condition from Curl_urldecode
2890
2891- ftp: fixed a NULL pointer dereference on OOM
2892
2893Jay Satiro (25 Feb 2017)
2894- [Peter Wu brought this change]
2895
2896 docs: de-duplicate file lists in the Makefiles
2897
2898 Make use of macro substitution of suffix patterns to remove duplication
2899 of manual names. This approach is portable according to
2900 http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html
2901
2902 Closes https://github.com/curl/curl/pull/1287
2903
2904Dan Fandrich (25 Feb 2017)
2905- ftp: removed an erroneous free in an OOM path
2906
2907- proxy: fixed a memory leak on OOM
2908
2909- tests: use consistent environment variables for setting charset
2910
2911 The character set in POSIX is set by the locale defined by (in
2912 decreasing order of precedence) the LC_ALL, LC_CTYPE and LANG
2913 environment variables (CHARSET was used by libidn but not libidn2).
2914 LC_ALL is cleared to ensure that LC_CTYPE takes effect, but LC_ALL is
2915 not used to set the locale to ensure that other parts of the locale
2916 aren't overridden. Since there doesn't seem to be a cross-platform way
2917 of specifying a UTF-8 locale, and not all systems may support UTF-8, a
2918 <precheck> is used to skip the test if UTF-8 can't be verified to be
2919 available. Test 1035 was also converted to UTF-8 for consistency, as
2920 the actual character set used there is irrelevant to the test.
2921
2922 This patch uses a different UTF-8 locale than the last attempt, namely
2923 en_US.UTF-8. This one has been verified on 7 different Linux and BSD
2924 distributions and is more complete and usable than the locale UTF-8 (on
2925 at least some systems).
2926
2927- test557: explicitly use the C locale so the numeric output is as expected
2928
2929Jay Satiro (25 Feb 2017)
2930- [Simon Warta brought this change]
2931
2932 cmake: Replace invalid UTF-8 byte sequence
2933
2934 - Change the encoding of the regex temp placeholder token to UTF-8.
2935
2936 Prior to this change the file contained special chars in a different
2937 encoding than ASCII or UTF-8 making text editors and Python complain
2938 when reading the file.
2939
2940 Closes https://github.com/curl/curl/pull/1271
2941 Closes https://github.com/curl/curl/pull/1275
2942
2943Daniel Stenberg (24 Feb 2017)
2944- bump: work on the next release
2945
2946Version 7.53.1 (24 Feb 2017)
2947
2948Daniel Stenberg (24 Feb 2017)
2949- release: 7.53.1
2950
2951- Revert "tests: use consistent environment variables for setting charset"
2952
2953 This reverts commit ecd1d020abdae3c3ce3643ddab3106501e62e7c0.
2954
2955 That commit caused test failures on my Debian Linux machine for all
2956 changed test cases. We need to reconsider how that should get done.
2957
2958Dan Fandrich (23 Feb 2017)
2959- tests: use consistent environment variables for setting charset
2960
2961 Character set in POSIX is set by the locale defined (in decreasing order
2962 of precedence) by the LC_ALL, LC_CTYPE and LANG environment variables (I
2963 believe CHARSET is only historic). LC_ALL is cleared to ensure that
2964 LC_CTYPE takes effect, but LC_ALL is not used to set the locale to
2965 ensure that other parts of the locale aren't overriden, if set. Since
2966 there doesn't seem to be a cross-platform way of specifying a UTF-8
2967 locale, and not all systems may support UTF-8, a <precheck> is used
2968 (where relevant) to skip the test if UTF-8 isn't in use. Test 1035 was
2969 also converted to UTF-8 for consistency, as the actual character set
2970 used there is irrelevant to the test.
2971
2972Jay Satiro (23 Feb 2017)
2973- url: Default the CA proxy bundle location to CURL_CA_BUNDLE
2974
2975 If the compile-time CURL_CA_BUNDLE location is defined use it as the
2976 default value for the proxy CA bundle location, which is the same as
2977 what we already do for the regular CA bundle location.
2978
2979 Ref: https://github.com/curl/curl/pull/1257
2980
2981Daniel Stenberg (23 Feb 2017)
2982- [Sergii Pylypenko brought this change]
2983
2984 rand: added missing #ifdef HAVE_FCNTL_H around fcntl.h header
2985
2986 Closes #1285
2987
2988- TODO: "OPTIONS *"
2989
2990 Closes #1280
2991
2992- RELEASE-NOTES: synced with 443e5b03a7d441
2993
2994- THANKS-filter: shachaf
2995
2996- [İsmail Dönmez brought this change]
2997
2998 tests: Set CHARSET & LANG to UTF-8 in 1035, 2046 and 2047
2999
3000 Closes #1283
3001 Fixes #1277
3002
3003- bump: 7.53.1 coming up
3004
3005 synced with df665f4df0f7a352
3006
3007- formdata: check for EOF when reading from stdin
3008
3009 Reported-by: shachaf@users.noreply.github.com
3010
3011 Fixes #1281
3012
3013Jay Satiro (22 Feb 2017)
3014- docs: gitignore curl.1
3015
3016 curl.1 is generated by the cmdline-opts script since 4c49b83.
3017
3018Daniel Stenberg (22 Feb 2017)
3019- TODO: HTTP Digest using SHA-256
3020
3021- TODO: brotli is deployed widely now
3022
3023Jay Satiro (21 Feb 2017)
3024- [Viktor Szakats brought this change]
3025
3026 urldata: include curl_sspi.h when Windows SSPI is enabled
3027
3028 f77dabe broke builds in Windows using Windows SSPI but not Windows SSL.
3029
3030 Bug: https://github.com/curl/curl/issues/1276
3031 Reported-by: jveazey@users.noreply.github.com
3032
3033- url: Improve CURLOPT_PROXY_CAPATH error handling
3034
3035 - Change CURLOPT_PROXY_CAPATH to return CURLE_NOT_BUILT_IN if the option
3036 is not supported, which is the same as what we already do for
3037 CURLOPT_CAPATH.
3038
3039 - Change the curl tool to handle CURLOPT_PROXY_CAPATH error
3040 CURLE_NOT_BUILT_IN as a warning instead of as an error, which is the
3041 same as what we already do for CURLOPT_CAPATH.
3042
3043 - Fix CAPATH docs to show that CURLE_NOT_BUILT_IN is returned when the
3044 respective CAPATH option is not supported by the SSL library.
3045
3046 Ref: https://github.com/curl/curl/pull/1257
3047
3048- cyassl: fix typo
3049
3050Version 7.53.0 (22 Feb 2017)
3051
3052Daniel Stenberg (22 Feb 2017)
3053- release: 7.53.0
3054
3055- cookie: fix declaration of 'dup' shadows a global declaration
3056
3057- TLS: make SSL_VERIFYSTATUS work again
3058
3059 The CURLOPT_SSL_VERIFYSTATUS option was not properly handled by libcurl
3060 and thus even if the status couldn't be verified, the connection would
3061 be allowed and the user would not be told about the failed verification.
3062
3063 Regression since cb4e2be7c6d42ca
3064
3065 CVE-2017-2629
3066 Bug: https://curl.haxx.se/docs/adv_20170222.html
3067
3068 Reported-by: Marcus Hoffmann
3069
3070Jay Satiro (21 Feb 2017)
3071- digest_sspi: Handle 'stale=TRUE' directive in HTTP digest
3072
3073 - If the server has provided another challenge use it as the replacement
3074 input token if stale=TRUE. Otherwise previous credentials have failed
3075 so return CURLE_LOGIN_DENIED.
3076
3077 Prior to this change the stale directive was ignored and if another
3078 challenge was received it would cause error CURLE_BAD_CONTENT_ENCODING.
3079
3080 Ref: https://tools.ietf.org/html/rfc2617#page-10
3081
3082 Bug: https://github.com/curl/curl/issues/928
3083 Reported-by: tarek112@users.noreply.github.com
3084
3085Daniel Stenberg (20 Feb 2017)
3086- smb: use getpid replacement for windows UWP builds
3087
3088 Source: https://github.com/Microsoft/vcpkg/blob/7676b8780db1e1e591c4fc7eba4f96f73c428cb4/ports/curl/0002_fix_uwp.patch
3089
3090- TODO: CURLOPT_RESOLVE for any port number
3091
3092 Closes #1264
3093
3094- RELEASE-NOTES: synced with af30f1152d43dcdb
3095
3096- [Jean Gressmann brought this change]
3097
3098 sftp: improved checks for create dir failures
3099
3100 Since negative values are errors and not only -1. This makes SFTP upload
3101 with --create-dirs work (again).
3102
3103 Closes #1269
3104
3105Jay Satiro (20 Feb 2017)
3106- [Max Khon brought this change]
3107
3108 digest_sspi: Fix nonce-count generation in HTTP digest
3109
3110 - on the first invocation: keep security context returned by
3111 InitializeSecurityContext()
3112
3113 - on subsequent invocations: use MakeSignature() instead of
3114 InitializeSecurityContext() to generate HTTP digest response
3115
3116 Bug: https://github.com/curl/curl/issues/870
3117 Reported-by: Andreas Roth
3118
3119 Closes https://github.com/curl/curl/pull/1251
3120
3121- examples/multi-uv: checksrc compliance
3122
3123Michael Kaufmann (19 Feb 2017)
3124- string formatting: fix 4 printf-style format strings
3125
3126Dan Fandrich (18 Feb 2017)
3127- tests: removed the obsolete name parameter
3128
3129Michael Kaufmann (18 Feb 2017)
3130- speed caps: update the timeouts if the speed is too low/high
3131
3132 Follow-up to 4b86113
3133
3134 Fixes https://github.com/curl/curl/issues/793
3135 Fixes https://github.com/curl/curl/issues/942
3136
3137- docs: fix timeout handling in multi-uv example
3138
3139- proxy: fix hostname resolution and IDN conversion
3140
3141 Properly resolve, convert and log the proxy host names.
3142 Support the "--connect-to" feature for SOCKS proxies and for passive FTP
3143 data transfers.
3144
3145 Follow-up to cb4e2be
3146
3147 Reported-by: Jay Satiro
3148 Fixes https://github.com/curl/curl/issues/1248
3149
3150Jay Satiro (17 Feb 2017)
3151- [Isaac Boukris brought this change]
3152
3153 http: fix missing 'Content-Length: 0' while negotiating auth
3154
3155 - While negotiating auth during PUT/POST if a user-specified
3156 Content-Length header is set send 'Content-Length: 0'.
3157
3158 This is what we do already in HTTPREQ_POST_FORM and what we did in the
3159 HTTPREQ_POST case (regression since afd288b).
3160
3161 Prior to this change no Content-Length header would be sent in such a
3162 case.
3163
3164 Bug: https://curl.haxx.se/mail/lib-2017-02/0006.html
3165 Reported-by: Dominik Hölzl
3166
3167 Closes https://github.com/curl/curl/pull/1242
3168
3169Daniel Stenberg (16 Feb 2017)
3170- [Simon Warta brought this change]
3171
3172 winbuild: add note on auto-detection of MACHINE in Makefile.vc
3173
3174 Closes #1265
3175
3176- RELEASE-PROCEDURE: update the upcoming release calendar
3177
3178- TODO: consider file name from the redirected URL with -O ?
3179
3180 It isn't easily solved, but with some thinking someone could probably
3181 come up with a working approach?
3182
3183 Closes #1241
3184
3185Jay Satiro (15 Feb 2017)
3186- tool_urlglob: Allow a glob range with the same start and stop
3187
3188 For example allow ranges like [1-1] and [a-a] etc.
3189
3190 Regression since 5ca96cb.
3191
3192 Bug: https://github.com/curl/curl/issues/1238
3193 Reported-by: R. Dennis Steed
3194
3195Daniel Stenberg (15 Feb 2017)
3196- axtls: adapt to API changes
3197
3198 Builds with axTLS 2.1.2. This then also breaks compatibility with axTLS
3199 < 2.1.0 (the older API)
3200
3201 ... and fix the session_id mixup brought in 04b4ee549
3202
3203 Fixes #1220
3204
3205- RELEASE-NOTES: synced with 690935390c29c
3206
3207- [Nick Draffen brought this change]
3208
3209 curl: fix typo in time condition warning message
3210
3211 The warning message had a typo. The argument long form is --time-cond
3212 not --timecond
3213
3214 Closes #1263
3215
3216- smb: code indent
3217
3218Jay Satiro (14 Feb 2017)
3219- configure: Allow disabling pthreads, fall back on Win32 threads
3220
3221 When the threaded resolver option is specified for configure the default
3222 thread library is pthreads. This change makes it possible to
3223 --disable-pthreads and then configure can fall back on Win32 threads for
3224 native Windows builds.
3225
3226 Closes https://github.com/curl/curl/pull/1260
3227
3228Daniel Stenberg (13 Feb 2017)
3229- http2: fix memory-leak when denying push streams
3230
3231 Reported-by: zelinchen@users.noreply.github.com
3232 Fixes #1229
3233
3234Jay Satiro (11 Feb 2017)
3235- tool_operate: Show HTTPS-Proxy options on CURLE_SSL_CACERT
3236
3237 When CURLE_SSL_CACERT occurs the tool shows a lengthy error message to
3238 the user explaining possible solutions such as --cacert and --insecure.
3239
3240 This change appends to that message similar options --proxy-cacert and
3241 --proxy-insecure when there's a specified HTTPS proxy.
3242
3243 Closes https://github.com/curl/curl/issues/1258
3244
3245Daniel Stenberg (10 Feb 2017)
3246- cmdline-opts/page-footer: ftp.sunet.se is no longer an FTP mirror
3247
3248- URL: only accept ";options" in SMTP/POP3/IMAP URL schemes
3249
3250 Fixes #1252
3251
3252Jay Satiro (9 Feb 2017)
3253- cmdline-opts/socks*: Mention --preproxy in --socks* opts
3254
3255 - Document in --socks* opts they're still mutually exclusive of --proxy.
3256
3257 Partial revert of 423a93c; I had misinterpreted the SOCKS proxy +
3258 HTTP/HTTPS proxy combination.
3259
3260 - Document in --socks* opts that --preproxy can be used to specify a
3261 SOCKS proxy at the same time --proxy is used with an HTTP/HTTPS proxy.
3262
3263Daniel Stenberg (9 Feb 2017)
3264- CURLOPT_SSL_VERIFYPEER.3: also the https proxy version
3265
3266Kamil Dudka (9 Feb 2017)
3267- nss: make FTPS work with --proxytunnel
3268
3269 If the NSS code was in the middle of a non-blocking handshake and it
3270 was asked to finish the handshake in blocking mode, it unexpectedly
3271 continued in the non-blocking mode, which caused a FTPS connection
3272 over CONNECT to fail with "(81) Socket not ready for send/recv".
3273
3274 Bug: https://bugzilla.redhat.com/1420327
3275
3276Daniel Stenberg (9 Feb 2017)
3277- examples/multithread.c: link to our multi-thread docs
3278
3279 ... instead of the OpenSSL mutex page.
3280
3281- http_proxy: avoid freeing static memory
3282
3283 Follow up to 7fe81ec298e0: make sure 'host' is either NULL or malloced.
3284
3285- [Cameron MacMinn brought this change]
3286
3287 http_proxy: Fix tiny memory leak upon edge case connecting to proxy
3288
3289 Fixes #1255
3290
3291Michael Kaufmann (8 Feb 2017)
3292- polarssl, mbedtls: Fix detection of pending data
3293
3294 Reported-by: Dan Fandrich
3295 Bug: https://curl.haxx.se/mail/lib-2017-02/0032.html
3296
3297Dan Fandrich (7 Feb 2017)
3298- test1139: Added the --manual keyword since the manual is required
3299
3300Daniel Stenberg (7 Feb 2017)
3301- RELEASE-NOTES: synced with 102454459dd688c
3302
3303- THANKS-filter: polish some recent contributors
3304
3305- http2: reset push header counter fixes crash
3306
3307 When removing an easy handler from a multi before it completed its
3308 transfer, and it had pushed streams, it would segfault due to the pushed
3309 counted not being cleared.
3310
3311 Fixed-by: zelinchen@users.noreply.github.com
3312 Fixes #1249
3313
3314- [Markus Westerlind brought this change]
3315
3316 transfer: only retry nobody-requests for HTTP
3317
3318 Using sftp to delete a file with CURLOPT_NOBODY set with a reused
3319 connection would fail as curl expected to get some data. Thus it would
3320 retry the command again which fails as the file has already been
3321 deleted.
3322
3323 Fixes #1243
3324
3325Jay Satiro (7 Feb 2017)
3326- [Daniel Gustafsson brought this change]
3327
3328 telnet: Fix typos
3329
3330 Ref: https://github.com/curl/curl/pull/1245
3331
3332- [Daniel Gustafsson brought this change]
3333
3334 test552: Fix typos
3335
3336 Closes https://github.com/curl/curl/pull/1245
3337
3338- [Daniel Gustafsson brought this change]
3339
3340 darwinssl: Avoid parsing certificates when not in verbose mode
3341
3342 The information extracted from the server certificates in step 3 is only
3343 used when in verbose mode, and there is no error handling or validation
3344 performed as that has already been done. Only run the certificate
3345 information extraction when in verbose mode and libcurl was built with
3346 verbose strings.
3347
3348 Closes https://github.com/curl/curl/pull/1246
3349
3350- [JDepooter brought this change]
3351
3352 schannel: Remove incorrect SNI disabled message
3353
3354 - Remove the SNI disabled when host verification disabled message
3355 since that is incorrect.
3356
3357 - Show a message for legacy versions of Windows <= XP that connections
3358 may fail since those versions of WinSSL lack SNI, algorithms, etc.
3359
3360 Bug: https://github.com/curl/curl/pull/1240
3361
3362Daniel Stenberg (7 Feb 2017)
3363- CHANGES: spell fix, use correct path to script
3364
3365- CHANGES.0: removed
3366
3367 This is the previously manually edited changelog, not touched since Aug
3368 2015. Still present in git for those who wants it.
3369
3370Dan Fandrich (6 Feb 2017)
3371- cmdline-opts: Fixed build and test in out of source tree builds
3372
3373Viktor Szakats (6 Feb 2017)
3374- use *.sourceforge.io and misc URL updates
3375
3376 Ref: https://sourceforge.net/blog/introducing-https-for-project-websites/
3377 Closes: https://github.com/curl/curl/pull/1247
3378
3379Jay Satiro (6 Feb 2017)
3380- docs: Add more HTTPS proxy documentation
3381
3382 - Document HTTPS proxy type.
3383
3384 - Document --write-out %{proxy_ssl_verify_result}.
3385
3386 - Document SOCKS proxy + HTTP/HTTPS proxy combination.
3387
3388 HTTPS proxy support was added in 7.52.0 for OpenSSL, GnuTLS and NSS.
3389
3390 Ref: https://github.com/curl/curl/commit/cb4e2be
3391
3392- OS400: Fix symbols
3393
3394 - s/CURLOPT_SOCKS_PROXY/CURLOPT_PRE_PROXY
3395 Follow-up to 7907a2b and 845522c.
3396
3397 - Fix incorrect id for CURLOPT_PROXY_PINNEDPUBLICKEY.
3398
3399 - Add id for CURLOPT_ABSTRACT_UNIX_SOCKET.
3400
3401 Bug: https://github.com/curl/curl/issues/1237
3402 Reported-by: jonrumsey@users.noreply.github.com
3403
3404- [Sean Burford brought this change]
3405
3406 cmake: Support curl --xattr when built with cmake
3407
3408 - Test for and set HAVE_FSETXATTR when support for extended file
3409 attributes is present.
3410
3411 Closes https://github.com/curl/curl/pull/1176
3412
3413- [Adam Langley brought this change]
3414
3415 openssl: Don't use certificate after transferring ownership
3416
3417 SSL_CTX_add_extra_chain_cert takes ownership of the given certificate
3418 while, despite the similar name, SSL_CTX_add_client_CA does not. Thus
3419 it's best to call SSL_CTX_add_client_CA before
3420 SSL_CTX_add_extra_chain_cert, while the code still has ownership of the
3421 argument.
3422
3423 Closes https://github.com/curl/curl/pull/1236
3424
3425Daniel Stenberg (29 Jan 2017)
3426- [Antoine Aubert brought this change]
3427
3428 mbedtls: implement CTR-DRBG and HAVEGE random generators
3429
3430 closes #1227
3431
3432- docs: we no longer ship HTML versions of man pages
3433
3434 ... refer to the web site for the web versions.
3435
3436- [railsnewbie257 brought this change]
3437
3438 docs: proofread README.netware README.win32
3439
3440 Closes #1231
3441
3442- RELEASE-NOTES; synced with ab08d82648
3443
3444Michael Kaufmann (28 Jan 2017)
3445- mbedtls: disable TLS session tickets
3446
3447 SSL session reuse with TLS session tickets is not supported yet.
3448 Use SSL session IDs instead.
3449
3450 See https://github.com/curl/curl/issues/1109
3451
3452- gnutls: disable TLS session tickets
3453
3454 SSL session reuse with TLS session tickets is not supported yet.
3455 Use SSL session IDs instead.
3456
3457 Fixes https://github.com/curl/curl/issues/1109
3458
3459- polarssl: fix hangs
3460
3461 This bugfix is similar to commit c111178bd4.
3462
3463Daniel Stenberg (27 Jan 2017)
3464- cookies: do not assume a valid domain has a dot
3465
3466 This repairs cookies for localhost.
3467
3468 Non-PSL builds will now only accept "localhost" without dots, while PSL
3469 builds okeys everything not listed as PSL.
3470
3471 Added test 1258 to verify.
3472
3473 This was a regression brought in a76825a5efa6b4
3474
3475- TODO: remove "Support TLS v1.3"
3476
3477 Support is trickling in already.
3478
3479- [railsnewbie257 brought this change]
3480
3481 INTERNALS.md: language improvements
3482
3483 Closes #1226
3484
3485- telnet: fix windows compiler warnings
3486
3487 Thumbs-up-by: Jay Satiro
3488
3489 Closes #1225
3490
3491- VC: remove the makefile.vc6 build infra
3492
3493 The winbuild/ build files is now the single MSVC makefile build choice.
3494
3495 Closes #1215
3496
3497- [Jay Satiro brought this change]
3498
3499 cmdline-opts/gen.pl: Open input files in CRLF mode
3500
3501 On Windows it's possible to have input files with CRLF line endings and
3502 a perl that defaults to LF line endings (eg msysgit). Currently that
3503 results in generator output of mixed line endings of CR, LF and CRLF.
3504
3505 This change fixes that issue in the most succinct way by opening the
3506 files in :crlf text mode even when the perl being used does not default
3507 to that mode. (On operating systems that don't have a separate text mode
3508 it's essentially a no-op.) The output continues to be in the perl's
3509 native line ending.
3510
3511- docs/curl.1: generate from the cmdline-opts script
3512
3513- vtls: source indentation fix
3514
3515- contri*.sh: cut off parentheses from names too
3516
3517- RELEASE-NOTES: synced with 01ab7c30bba6f
3518
3519- vtls: fix PolarSSL non-blocking handling
3520
3521 A regression brought in cb4e2be
3522
3523 Reported-by: Michael Kaufmann
3524 Bug: https://github.com/curl/curl/issues/1174#issuecomment-274018791
3525
3526- [Antoine Aubert brought this change]
3527
3528 vtls: fix mbedtls multi non blocking handshake.
3529
3530 When using multi, mbedtls handshake is in non blocking mode. vtls must
3531 set wait for read/write flags for the socket.
3532
3533 Closes #1223
3534
3535- [Richy Kim brought this change]
3536
3537 CURLOPT_BUFFERSIZE: support enlarging receive buffer
3538
3539 Replace use of fixed macro BUFSIZE to define the size of the receive
3540 buffer. Reappropriate CURLOPT_BUFFERSIZE to include enlarging receive
3541 buffer size. Upon setting, resize buffer if larger than the current
3542 default size up to a MAX_BUFSIZE (512KB). This can benefit protocols
3543 like SFTP.
3544
3545 Closes #1222
3546
3547- sws: use SOCKERRNO, not errno
3548
3549 Reported-by: Gisle Vanem
3550
3551Michael Kaufmann (19 Jan 2017)
3552- KNOWN_BUGS: HTTP/2 server push enabled when no pushes can be accepted
3553
3554 This has been implemented with commit 9ad034e.
3555
3556Viktor Szakats (19 Jan 2017)
3557- *.rc: escape non-ASCII/non-UTF-8 character for clarity
3558
3559 Closes https://github.com/curl/curl/pull/1217
3560
3561Kamil Dudka (19 Jan 2017)
3562- docs: non-blocking SSL handshake is now supported with NSS
3563
3564 Implemented since curl-7_36_0-130-g8868a22
3565
3566 Reported-by: Fahim Chandurwala
3567
3568Michael Kaufmann (18 Jan 2017)
3569- CURLOPT_CONNECT_TO: Fix compile warnings
3570
3571 Fix compile warnings that appeared only when curl has been configured
3572 with '--disable-verbose'.
3573
3574Daniel Stenberg (18 Jan 2017)
3575- usercertinmem.c: improve the short description
3576
3577- parseurl: move back buffer to function scope
3578
3579 Regression since 1d4202ad, which moved the buffer into a more narrow
3580 scope, but the data in that buffer was used outside of that more narrow
3581 scope.
3582
3583 Reported-by: Dan Fandrich
3584 Bug: https://curl.haxx.se/mail/lib-2017-01/0093.html
3585
3586Jay Satiro (17 Jan 2017)
3587- openssl: Fix random generation
3588
3589 - Fix logic error in Curl_ossl_random.
3590
3591 Broken a few days ago in 807698d.
3592
3593Daniel Stenberg (17 Jan 2017)
3594- TODO: share OpenSSL contexts
3595
3596 By supporting this, subsequent connects would load a lot less data from
3597 disk.
3598
3599 Closes #1110
3600
3601- bump: next release will be 7.53.0
3602
3603Kamil Dudka (15 Jan 2017)
3604- nss: use the correct lock in nss_find_slot_by_name()
3605
3606Alessandro Ghedini (15 Jan 2017)
3607- http2: disable server push if not requested
3608
3609 Ref: https://github.com/curl/curl/pull/1160
3610
3611Daniel Stenberg (14 Jan 2017)
3612- [railsnewbie257 brought this change]
3613
3614 docs: improved language in README.md HISTORY.md CONTRIBUTE.md
3615
3616 Closes #1211
3617
3618Alessandro Ghedini (14 Jan 2017)
3619- http: print correct HTTP string in verbose output when using HTTP/2
3620
3621 Before:
3622 ```
3623 % src/curl https://sigsegv.ninja/ -v --http2
3624 ...
3625 > GET / HTTP/1.1
3626 > Host: sigsegv.ninja
3627 > User-Agent: curl/7.52.2-DEV
3628 > Accept: */*
3629 >
3630 ...
3631 ```
3632
3633 After:
3634 ```
3635 % src/curl https://sigsegv.ninja/ -v --http2
3636 ...
3637 > GET / HTTP/2
3638 > Host: sigsegv.ninja
3639 > User-Agent: curl/7.52.2-DEV
3640 > Accept: */*
3641 >
3642 ```
3643
3644Daniel Stenberg (14 Jan 2017)
3645- TODO: send only part of --data
3646
3647 Closes #1200
3648
3649- TODO: implemened "--fail-fast to exit on first transfer fail"
3650
3651 Even though it is called --fail-early
3652
3653- TODO: Chunked transfer multipart formpost
3654
3655 Closes #1139
3656
3657- TODO: Improve formpost API, not just add an easy argument
3658
3659- addrinfo: fix compiler warning on offsetof() use
3660
3661 curl_addrinfo.c:519:20: error: conversion to ‘curl_socklen_t {aka
3662 unsigned int}’ from ‘long unsigned int’ may alter its value
3663 [-Werror=conversion]
3664
3665 Follow-up to 1d786faee1046f
3666
3667- THANKS-filter: Jiri Malak
3668
3669- RELEASE-NOTES: synced with a7c73ae309c
3670
3671Peter Wu (13 Jan 2017)
3672- [Isaac Boukris brought this change]
3673
3674 unix_socket: add support for abstract unix domain socket
3675
3676 In addition to unix domain sockets, Linux also supports an
3677 abstract namespace which is independent of the filesystem.
3678
3679 In order to support it, add new CURLOPT_ABSTRACT_UNIX_SOCKET
3680 option which uses the same storage as CURLOPT_UNIX_SOCKET_PATH
3681 internally, along with a flag to specify abstract socket.
3682
3683 On non-supporting platforms, the abstract address will be
3684 interpreted as an empty string and fail gracefully.
3685
3686 Also add new --abstract-unix-socket tool parameter.
3687
3688 Signed-off-by: Isaac Boukris <iboukris@gmail.com>
3689 Reported-by: Chungtsun Li (typeless)
3690 Reviewed-by: Daniel Stenberg
3691 Reviewed-by: Peter Wu
3692 Closes #1197
3693 Fixes #1061
3694
3695Daniel Stenberg (13 Jan 2017)
3696- write-out.d: 'time_total' is not always shown with ms precision
3697
3698 We have higher resolution since 7.52.0
3699
3700- next.d: --trace and --trace-ascii are also global
3701
3702- [Isaac Boukris brought this change]
3703
3704 curl: reset the easy handle at --next
3705
3706 So that only "global" options (verbose mostly) survive into the next
3707 transfer, and the others have to be set again unless default is fine.
3708
3709- [Frank Gevaerts brought this change]
3710
3711 docs: Add note about libcurl copying strings to CURLOPT_* manpages
3712
3713 Closes #1169
3714
3715- [Frank Gevaerts brought this change]
3716
3717 CURLOPT_PREQUOTE.3: takes a struct curl_slist*, not a char*
3718
3719- IDN: Use TR46 non-transitional
3720
3721 Assisted-by: Tim Rühsen
3722
3723- IDN: revert use of the transitional option
3724
3725 It made the german ß get converted to ss, IDNA2003 style, and we can't
3726 have that for the .de TLD - a primary reason for our switch to IDNA2008.
3727
3728 Test 165 verifies.
3729
3730- [Tim Rühsen brought this change]
3731
3732 IDN: Fix compile time detection of linidn2 TR46
3733
3734 Follow-up to f30cbcac1
3735
3736 Closes #1207
3737
3738- [ERAMOTO Masaya brought this change]
3739
3740 url: --noproxy option overrides NO_PROXY environment variable
3741
3742 Under condition using http_proxy env var, noproxy list was the
3743 combination of --noproxy option and NO_PROXY env var previously. Since
3744 this commit, --noproxy option overrides NO_PROXY environment variable
3745 even if use http_proxy env var.
3746
3747 Closes #1140
3748
3749- [ERAMOTO Masaya brought this change]
3750
3751 url: Refactor detect_proxy()
3752
3753 If defined CURL_DISABLE_HTTP, detect_proxy() returned NULL. If not
3754 defined CURL_DISABLE_HTTP, detect_proxy() checked noproxy list.
3755
3756 Thus refactor to set proxy to NULL instead of calling detect_proxy() if
3757 define CURL_DISABLE_HTTP, and refactor to call detect_proxy() if not
3758 define CURL_DISABLE_HTTP and the host is not in the noproxy list.
3759
3760- [ERAMOTO Masaya brought this change]
3761
3762 url: Fix NO_PROXY env var to work properly with --proxy option.
3763
3764 The combination of --noproxy option and http_proxy env var works well
3765 both for proxied hosts and non-proxied hosts.
3766
3767 However, when combining NO_PROXY env var with --proxy option,
3768 non-proxied hosts are not reachable while proxied host is OK.
3769
3770 This patch allows us to access non-proxied hosts even if using NO_PROXY
3771 env var with --proxy option.
3772
3773- [Tim Rühsen brought this change]
3774
3775 IDN: Use TR46 'transitional' for toASCII translations
3776
3777 References: http://unicode.org/faq/idn.html
3778 http://unicode.org/reports/tr46
3779
3780 Closes #1206
3781
3782- [railsnewbie257 brought this change]
3783
3784 docs: FAQ MAIL-ETIQUETTE language fixes
3785
3786 Closes #1194
3787
3788- [Marcus Hoffmann brought this change]
3789
3790 gnutls: check for alpn and ocsp in configure
3791
3792 Check for presence of gnutls_alpn_* and gnutls_ocsp_* functions during
3793 configure instead of relying on the version number. GnuTLS has options
3794 to turn these features off and we ca just work with with such builds
3795 like we work with older versions.
3796
3797 Signed-off-by: Marcus Hoffmann <m.hoffmann@cartelsol.com>
3798
3799 Closes #1204
3800
3801Jay Satiro (12 Jan 2017)
3802- url: Fix parsing for when 'file' is the default protocol
3803
3804 Follow-up to 3463408.
3805
3806 Prior to 3463408 file:// hostnames were silently stripped.
3807
3808 Prior to this commit it did not work when a schemeless url was used with
3809 file as the default protocol.
3810
3811 Ref: https://curl.haxx.se/mail/lib-2016-11/0081.html
3812 Closes https://github.com/curl/curl/pull/1124
3813
3814 Also fix for drive letters:
3815
3816 - Support --proto-default file c:/foo/bar.txt
3817
3818 - Support file://c:/foo/bar.txt
3819
3820 - Fail when a file:// drive letter is detected and not MSDOS/Windows.
3821
3822 Bug: https://github.com/curl/curl/issues/1187
3823 Reported-by: Anatol Belski
3824 Assisted-by: Anatol Belski
3825
3826Daniel Stenberg (12 Jan 2017)
3827- rand: make it work without TLS backing
3828
3829 Regression introduced in commit f682156a4fc6c4
3830
3831 Reported-by: John Kohl
3832 Bug: https://curl.haxx.se/mail/lib-2017-01/0055.html
3833
3834Jay Satiro (12 Jan 2017)
3835- STARTTLS: Don't print response character in denied messages
3836
3837 Both IMAP and POP3 response characters are used internally, but when
3838 appended to the STARTTLS denial message likely could confuse the user.
3839
3840 Closes https://github.com/curl/curl/pull/1203
3841
3842- smtp: Fix STARTTLS denied error message
3843
3844 - Format the numeric denial code as an integer instead of a character.
3845
3846Daniel Stenberg (11 Jan 2017)
3847- http2_send: avoid unsigned integer wrap around
3848
3849 ... when checking for a too large request.
3850
3851Jay Satiro (9 Jan 2017)
3852- [Jiri Malak brought this change]
3853
3854 cmake: Fix passing _WINSOCKAPI_ macro to compiler
3855
3856 Define _WINSOCKAPI_ blank rather than to 1 in order to match the value
3857 used by Microsoft's winsock header files.
3858
3859 Closes https://github.com/curl/curl/pull/1195
3860
3861Daniel Stenberg (9 Jan 2017)
3862- sws: retry send() on EWOULDBLOCK
3863
3864 Fixes spurious test 1060 and 1061 failures on OpenBSD, Solaris and more.
3865
3866 Bug: https://curl.haxx.se/mail/lib-2017-01/0009.html
3867 Reported-by: Christian Weisgerber
3868
3869- RELEASE-NOTES: synced with a41e8592d6b3e58
3870
3871- examples: make the C++ examples follow our code style too
3872
3873 At least mostly, not counting // comments.
3874
3875- [Aulddays brought this change]
3876
3877 asiohiper: improved socket handling
3878
3879 libcurl requires CURLMOPT_SOCKETFUNCTION to KEEP watching socket events
3880 and notify back. Modify event_cb() to continue watching events when
3881 fired.
3882
3883 Fixes #1191
3884 Closes #1192
3885 Fixed-by: Mingliang Zhu
3886
3887- [Jiří Malák brought this change]
3888
3889 lib506: fix build for Open Watcom
3890
3891 Rename symbol lock to locks to not clash with OW CRTL function name.
3892
3893 Closes #1196
3894
3895- ROADMAP: 2017 cleanup
3896
3897 Removed items already fixed, clarified a few others.
3898
3899- COPYING: update the generic copyright year range
3900
3901- docs/silent: mention --show-error in --silent description
3902
3903 Reported in #1190
3904 Reported-by: Dan Jacobson
3905
3906- docs/page-header: mention how to disable the progress meter
3907
3908 curl.1 is regenerated
3909
3910 Fixes #1190
3911
3912Dan Fandrich (7 Jan 2017)
3913- wolfssl: display negotiated SSL version and cipher
3914
3915- wolfssl: support setting cipher list
3916
3917Patrick Monnerat (6 Jan 2017)
3918- CIPHERS.md: document GSKit ciphers
3919
3920Jay Satiro (5 Jan 2017)
3921- [peterpih brought this change]
3922
3923 TheArtOfHttpScripting: grammar
3924
3925Nick Zitzmann (3 Jan 2017)
3926- darwinssl: --insecure overrides --cacert if both settings are in use
3927
3928 Fixes #1184
3929
3930Jay Satiro (2 Jan 2017)
3931- docs/libcurl: TCP_KEEPALIVE start and interval default to 60
3932
3933 Since the TCP keep-alive options were added in 705f0f7 the start and
3934 interval default values have been 60, but that wasn't documented.
3935
3936 Bug: https://curl.haxx.se/mail/lib-2017-01/0000.html
3937 Reported-by: Praveen Pvs
3938
3939Daniel Stenberg (29 Dec 2016)
3940- curl.h: CURLE_FUNCTION_NOT_FOUND is no longer in use
3941
3942 This error code was once introduced when some library was dynamically
3943 loaded and a funciton within said library couldn't be found.
3944
3945- content_encoding: change return code on a failure
3946
3947 Failure to decompress is now a write error instead of the weird
3948 "function not found".
3949
3950- page-footer: error 36 is protocol agnostic!
3951
3952Jay Satiro (28 Dec 2016)
3953- tool_operate: Fix --remote-time incorrect times on Windows
3954
3955 - Use Windows API SetFileTime to set the file time instead of utime.
3956
3957 Avoid utime on Windows if possible because it may apply a daylight
3958 saving time offset to our UTC file time.
3959
3960 Bug: https://curl.haxx.se/mail/archive-2016-11/0033.html
3961 Reported-by: Tim
3962
3963 Closes https://github.com/curl/curl/pull/1121
3964
3965Daniel Stenberg (29 Dec 2016)
3966- [Max Khon brought this change]
3967
3968 digest_sspi: copy terminating NUL as well
3969
3970 Curl_auth_decode_digest_http_message(): copy terminating NUL as later
3971 Curl_override_sspi_http_realm() expects a NUL-terminated string.
3972
3973 Fixes #1180
3974
3975- curl_formadd.3: CURLFORM_CONTENTSLENGTH not needed when chunked
3976
3977 Mentioned in #1013
3978
3979- [Kyselgov E.N brought this change]
3980
3981 cmake: use crypt32.lib when building with OpenSSL on windows
3982
3983 Reviewed-by: Peter Wu
3984 Closes #1149
3985 Fixes #1147
3986
3987- [Chris Araman brought this change]
3988
3989 darwinssl: fix CFArrayRef leak
3990
3991 Reviewed-by: Nick Zitzmann
3992 Closes #1173
3993
3994- [Chris Araman brought this change]
3995
3996 darwinssl: fix iOS build
3997
3998 Reviewed-by: Nick Zitzmann
3999 Fixes #1172
4000
4001- curl: remove superfluous include file
4002
4003 The <netinet/tcp.h> is a leftover from the past when TCP socket options
4004 were set in this file. This include causes build issues on AIX 4.3.
4005
4006 Reported-by: Kim Minjoong
4007
4008 Closes #1178
4009
4010- RELEASE-NOTES: synced with a7b38c9dc98481e
4011
4012- vtls: s/SSLEAY/OPENSSL
4013
4014 Fixed an old leftover use of the USE_SSLEAY define which would make a
4015 socket get removed from the applications sockets to monitor when the
4016 multi_socket API was used, leading to timeouts.
4017
4018 Bug: #1174
4019
4020- docs/ciphers: link to our own new page about ciphers
4021
4022 ... as the former ones always go stale!
4023
4024- cmdline-opts/page-footer: add three more exit codes
4025
4026 ... and regenerated curl.1
4027
4028- formdata: use NULL, not 0, when returning pointers
4029
4030- ftp: failure to resolve proxy should return that error code
4031
4032- configure: accept --with-libidn2 instead
4033
4034 ... which the help text already implied since we switched to libidn2
4035 from libidn in commit 9c91ec778104ae3b back in October 2016.
4036
4037 Reported-by: Christian Weisgerber
4038 Bug: https://curl.haxx.se/mail/lib-2016-12/0110.html
4039
4040- test1282: verify the ftp-gss check
4041
4042- ftp-gss: check for init before use
4043
4044 To avoid dereferencing a NULL pointer.
4045
4046 Reported-by: Daniel Romero
4047
4048Jay Satiro (24 Dec 2016)
4049- build-wolfssl: Sync config with wolfSSL 3.10
4050
4051 wolfSSL configure script relevant changes from 3.9 to 3.10:
4052
4053 - DES3 no longer enabled by default
4054 - Shamir no longer enabled by default
4055 - Extended master secret enabled by default
4056 - RSA and ECC timing protections enabled by default
4057
4058 For backwards compatibility I enabled DES3 and ECC shamir config options
4059 (ie no change from 3.9), and the other changes are included.
4060
4061- cyassl: use time_t instead of long for timeout
4062
4063Daniel Stenberg (23 Dec 2016)
4064- bump: toward next release
4065
4066- http: remove "Curl_http_done: called premature" message
4067
4068 ... it only confuses people.
4069
4070- openssl-random: check return code when asking for random
4071
4072 and fail appropriately if it returns error
4073
4074- gnutls-random: check return code for failed random
4075
4076Version 7.52.1 (22 Dec 2016)
4077
4078Daniel Stenberg (22 Dec 2016)
4079- RELEASE-NOTES: curl 7.52.1
4080
4081- lib557.c: use a shorter MAXIMIZE representation
4082
4083 Since several compilers had problems with the previous one
4084
4085 Reported-by: Ray Satiro
4086 Bug: https://curl.haxx.se/mail/lib-2016-12/0098.html
4087
4088- runtests: remove the valgrind parser
4089
4090 Old legacy parsing that 1) hid problems for us and 2) probably isn't
4091 needed anymore.
4092
4093- [Kamil Dudka brought this change]
4094
4095 randit: store the value in the buffer
4096
4097- tests/Makefile: run checksrc on debug builds
4098
4099 ... just like we already do in src/ and lib/
4100
4101- lib557: move the "enable LONGLINE" to allow more long lines
4102
4103 This file is riddled with them...
4104
4105- bump: toward next release
4106
4107Marcel Raad (21 Dec 2016)
4108- lib: fix MSVC compiler warnings
4109
4110 Visual C++ complained:
4111 warning C4267: '=': conversion from 'size_t' to 'long', possible loss of data
4112 warning C4701: potentially uninitialized local variable 'path' used
4113
4114Version 7.52.0 (20 Dec 2016)
4115
4116Daniel Stenberg (20 Dec 2016)
4117- THANKS: 13 new contributors from 7.52.0
4118
4119- RELEASE-NOTES: 7.52.0
4120
4121- ssh: inhibit coverity warning with (void)
4122
4123 CID 1397391 (#1 of 1): Unchecked return value (CHECKED_RETURN)
4124
4125- Curl_recv_has_postponed_data: silence compiler warnings
4126
4127 Follow-up to d00f2a8f2
4128
4129Jay Satiro (19 Dec 2016)
4130- tests: checksrc compliance
4131
4132- http_proxy: Fix proxy CONNECT hang on pending data
4133
4134 - Check for pending data before waiting on the socket.
4135
4136 Bug: https://github.com/curl/curl/issues/1156
4137 Reported-by: Adam Langley
4138
4139Daniel Stenberg (19 Dec 2016)
4140- cmdline-opts/tlsv1.d: rephrased
4141
4142- [Dan McNulty brought this change]
4143
4144 schannel: fix wildcard cert name validation on Win CE
4145
4146 Fixes a few issues in manual wildcard cert name validation in
4147 schannel support code for Win32 CE:
4148 - when comparing the wildcard name to the hostname, the wildcard
4149 character was removed from the cert name and the hostname
4150 was checked to see if it ended with the modified cert name.
4151 This allowed cert names like *.com to match the connection
4152 hostname. This violates recommendations from RFC 6125.
4153 - when the wildcard name in the certificate is longer than the
4154 connection hostname, a buffer overread of the connection
4155 hostname buffer would occur during the comparison of the
4156 certificate name and the connection hostname.
4157
4158- printf: fix floating point buffer overflow issues
4159
4160 ... and add a bunch of floating point printf tests
4161
4162- config-amigaos.h: (embarrassed) made the line shorter
4163
4164- config-amigaos.h: fix bug report email reference
4165
4166- RELEASE-NOTES: synced with 4517158abfeba
4167
4168- CIPHERS.md: backtick the names to show underscores fine
4169
4170- form-string.d: fix format mistake
4171
4172 and regenerated curl.1
4173
4174 Reported-by: Gisle Vanem
4175
4176Michael Kaufmann (18 Dec 2016)
4177- openssl: simplify expression in Curl_ossl_version
4178
4179- curl_easy_recv: Improve documentation and example program
4180
4181 Follow-up to 82245ea: Fix the example program sendrecv.c (handle
4182 CURLE_AGAIN, handle incomplete send). Improve the documentation
4183 for curl_easy_recv() and curl_easy_send().
4184
4185 Reviewed-by: Frank Meier
4186 Assisted-by: Jay Satiro
4187
4188 See https://github.com/curl/curl/pull/1134
4189
4190- [Isaac Boukris brought this change]
4191
4192 Curl_getconnectinfo: avoid checking if the connection is closed
4193
4194 It doesn't benefit us much as the connection could get closed at
4195 any time, and also by checking we lose the ability to determine
4196 if the socket was closed by reading zero bytes.
4197
4198 Reported-by: Michael Kaufmann
4199
4200 Closes https://github.com/curl/curl/pull/1134
4201
4202Daniel Stenberg (18 Dec 2016)
4203- CIPHERS.md: attempt to document TLS cipher names
4204
4205 As the official docs seems really hard to keep track of and link to over
4206 time
4207
4208- curl.1: generated after 6cce4dbf830
4209
4210- cmdline-opts/post30X.d: fix the RFC references
4211
4212- curl.1: regenerated
4213
4214 Fixed trailing whitespace and numerous formatting glitches
4215
4216- cmdline-opts: formatting fixes
4217
4218- curl_easy_setopt.3: removed CURLOPT_SOCKS_PROXYTYPE
4219
4220- tool_getparam.c: make comments use the up-to-date option names
4221
4222- manpage-scan.pl: allow deprecated options to get removed from curl.1
4223
4224 --krb4, --ftp-ssl and --ftp-ssl-reqd no longer need to be documented in the
4225 man page
4226
4227- cmdline-opts/gen.pl: trim off trailing spaces
4228
4229- cmdline-opts/proxy-tlsuser.d: remove trailing .d
4230
4231- curl_easy_setopt.3: CURLOPT_PRE_PROXY instead of CURLOPT_SOCKS_PROXY
4232
4233- symbols: removed two, added one
4234
4235- cmdline-opts: include the man page split up files in the dist
4236
4237- curl.1: generated with gen.pl
4238
4239 This is the first time we replace the manually edited curt.1 with the
4240 generated one created by gen.pl and the individual option documentation
4241 pages.
4242
4243 Do not edit this file, edit the individual pages and regenerate this
4244 output.
4245
4246 This file will be generated by the build system soon and then removed
4247 from git.
4248
4249- cmdline-opts: added some missing info
4250
4251- CURLINFO_SSL_VERIFYRESULT.3: language
4252
4253- HTTPS-PROXY docs: update/polish
4254
4255- cmdline-opts/page-header: mention it is generated
4256
4257 ... to avoid people from trying to edit the pending curl.1 version that
4258 gets generated by gen.pl
4259
4260- preproxy: renamed what was added as SOCKS_PROXY
4261
4262 CURLOPT_SOCKS_PROXY -> CURLOPT_PRE_PROXY
4263
4264 Added the corresponding --preroxy command line option. Sets a SOCKS
4265 proxy to connect to _before_ connecting to a HTTP(S) proxy.
4266
4267- curl: normal socks proxies still use CURLOPT_PROXY
4268
4269 ... the newly introduced CURLOPT_SOCKS_PROXY is special and should be
4270 asked for specially. (Needs new code.)
4271
4272 Unified proxy type to a single variable in the config struct.
4273
4274- CURLOPT_SOCKS_PROXYTYPE: removed
4275
4276 This was added as part of the SOCKS+HTTPS proxy merge but there's no
4277 need to support this as we prefer to have the protocol specified as a
4278 prefix instead.
4279
4280- curl_multi_socket.3: fix typo
4281
4282- checksrc: warn for assignments within if() expressions
4283
4284 ... they're already frowned upon in our source code style guide, this
4285 now enforces the rule harder.
4286
4287- checksrc: stricter no-space-before-paren enforcement
4288
4289 In order to make the code style more uniform everywhere
4290
4291- ISSUE_TEMPLATE: try mentioning known bugs/todo in new issue template
4292
4293- RELEASE-NOTES: synced with 71a55534fa6
4294
4295- [Adam Langley brought this change]
4296
4297 openssl: don't use OpenSSL's ERR_PACK.
4298
4299 ERR_PACK is an internal detail of OpenSSL. Also, when using it, a
4300 function name must be specified which is overly specific: the test will
4301 break whenever OpenSSL internally change things so that a different
4302 function creates the error.
4303
4304 Closes #1157
4305
4306Dan Fandrich (5 Dec 2016)
4307- test2032: Mark test as flaky
4308
4309Jay Satiro (3 Dec 2016)
4310- [Jeremy Pearson brought this change]
4311
4312 libcurl-multi.3: typo
4313
4314 Closes https://github.com/curl/curl/pull/1153
4315
4316Dan Fandrich (2 Dec 2016)
4317- test1281: added http as a required feature
4318
4319Daniel Stenberg (2 Dec 2016)
4320- curl: support zero-length argument strings in config files
4321
4322 ... like 'user-agent = ""'
4323
4324 Adjusted test 71 to verify.
4325
4326- http_proxy: simplify CONNECT response reading
4327
4328 Since it now reads responses one byte a time, a loop could be removed
4329 and it is no longer limited to get the whole response within 16K, it is
4330 now instead only limited to 16K maximum header line lengths.
4331
4332- tests: fix CONNECT test cases to be more strict
4333
4334 ... as they broke with the cleaned up CONNECT handling
4335
4336- CONNECT: read responses one byte at a time
4337
4338 ... so that it doesn't read data that is actually coming from the
4339 remote. 2xx responses have no body from the proxy, that data is from the
4340 peer.
4341
4342 Fixes #1132
4343
4344- CONNECT: reject TE or CL in 2xx responses
4345
4346 A server MUST NOT send any Transfer-Encoding or Content-Length header
4347 fields in a 2xx (Successful) response to CONNECT. (RFC 7231 section
4348 4.3.6)
4349
4350 Also fixes the three test cases that did this.
4351
4352- URL parser: reject non-numerical port numbers
4353
4354 Test 1281 added to verify
4355
4356Dan Fandrich (30 Nov 2016)
4357- runtests: made Servers: output be more consistent by removing OFF
4358
4359- cyassl: fixed typo introduced in 4f8b1774
4360
4361Michael Kaufmann (30 Nov 2016)
4362- CURLOPT_CONNECT_TO: Skip non-matching "connect-to" entries properly
4363
4364 If a port number in a "connect-to" entry does not match, skip this
4365 entry instead of connecting to port 0.
4366
4367 If a port number in a "connect-to" entry matches, use this entry
4368 and look no further.
4369
4370 Reported-by: Jay Satiro
4371 Assisted-by: Jay Satiro, Daniel Stenberg
4372
4373 Closes #1148
4374
4375Daniel Stenberg (29 Nov 2016)
4376- BUGS: describe bug handling process
4377
4378- RELEASE-NOTES: synced with 19613fb3
4379
4380Jay Satiro (28 Nov 2016)
4381- http2: check nghttp2_session_set_local_window_size exists
4382
4383 The function only exists since nghttp2 1.12.0.
4384
4385 Bug: https://github.com/curl/curl/commit/a4d8888#commitcomment-19985676
4386 Reported-by: Michael Kaufmann
4387
4388Daniel Stenberg (28 Nov 2016)
4389- [Anders Bakken brought this change]
4390
4391 http2: Fix crashes when parent stream gets aborted
4392
4393 Closes #1125
4394
4395- cmdline-docs: more options converted and fixed
4396
4397 Now all options are in the new system.
4398
4399- gen: include footer in mainpage output
4400
4401Jay Satiro (28 Nov 2016)
4402- lib1536: checksrc compliance
4403
4404Daniel Stenberg (28 Nov 2016)
4405- cmdline-opts: more command line options documented
4406
4407 Moved over to the new format
4408
4409- curl: remove --proxy-ssl* options
4410
4411 There's mostly likely no need to allow setting SSLv2/3 version for HTTPS
4412 proxy. Those protocols are insecure by design and deprecated.
4413
4414- CURLOPT_PROXY_*.3: polished some proxy option man pages
4415
4416Patrick Monnerat (26 Nov 2016)
4417- os400: support CURLOPT_PROXY_PINNEDPUBLICKEY
4418
4419 Also define it in ILE/RPG binding.
4420
4421Daniel Stenberg (26 Nov 2016)
4422- [Okhin Vasilij brought this change]
4423
4424 curl_version_info: add CURL_VERSION_HTTPS_PROXY
4425
4426 Closes #1142
4427
4428- [Frank Gevaerts brought this change]
4429
4430 tests: Add some testcases for recent new features.
4431
4432 Add missing tests for CURLINFO_SCHEME, CURLINFO_PROTOCOL, %{scheme},
4433 and %{http_version}
4434
4435 closes #1143
4436
4437- [Frank Gevaerts brought this change]
4438
4439 curl_easy_reset: clear info for CULRINFO_PROTOCOL and CURLINFO_SCHEME
4440
4441- CURLOPT_PROXY_CAINFO.3: clarify proxy use
4442
4443- CURLOPT_PROXY_CRLFILE.3: clarify https proxy and availability
4444
4445- curl_easy_setopt.3: add CURLOPT_PROXY_PINNEDPUBLICKEY
4446
4447 Follow-up to 4f8b17743d7c55a
4448
4449- docs: include all opts man pages in dist
4450
4451 Sorted the lists too.
4452
4453 ... and include the new ones in the PDF and HTML generation targets
4454
4455- [Thomas Glanzmann brought this change]
4456
4457 HTTPS Proxy: Implement CURLOPT_PROXY_PINNEDPUBLICKEY
4458
4459- [Thomas Glanzmann brought this change]
4460
4461 url: proxy: Use 443 as default port for https proxies
4462
4463- TODO: removed "HTTPS proxy"
4464
4465- [Jan-E brought this change]
4466
4467 winbuild: add config option ENABLE_NGHTTP2
4468
4469 Closes #1141
4470
4471Jay Satiro (24 Nov 2016)
4472- tool_urlglob: Improve sanity check in glob_range
4473
4474 Prior to this change we depended on errno if strtol could not perform a
4475 conversion. POSIX says EINVAL *may* be set. Some implementations like
4476 Microsoft's will not set it if there's no conversion.
4477
4478 Ref: https://github.com/curl/curl/commit/ee4f7660#commitcomment-19658189
4479
4480- tool_help: Change description for --retry-connrefused
4481
4482 Ref: https://github.com/curl/curl/pull/1064#issuecomment-260052409
4483
4484Patrick Monnerat (25 Nov 2016)
4485- os400: sync ILE/RPG binding
4486
4487Jay Satiro (24 Nov 2016)
4488- test1135: Fix curl_easy_duphandle prototype for code style
4489
4490 Follow-up to dbadaeb which changed the style.
4491
4492- x509asn1: Restore the parameter check in Curl_getASN1Element
4493
4494 - Restore the removed parts of the parameter check.
4495
4496 Follow-up to 945f60e which altered the parameter check.
4497
4498Daniel Stenberg (25 Nov 2016)
4499- RELEASE-NOTES: update option counters
4500
4501- [Frank Gevaerts brought this change]
4502
4503 add CURLINFO_SCHEME, CURLINFO_PROTOCOL, and %{scheme}
4504
4505 Adds access to the effectively used protocol/scheme to both libcurl and
4506 curl, both in string and numeric (CURLPROTO_*) form.
4507
4508 Note that the string form will be uppercase, as it is just the internal
4509 string.
4510
4511 As these strings are declared internally as const, and all other strings
4512 returned by curl_easy_getinfo() are de-facto const as well, string
4513 handling in getinfo.c got const-ified.
4514
4515 Closes #1137
4516
4517- RELEASE-NOTES: synced with 63198a4750aeb
4518
4519- curl.1: the new --proxy options ship in 7.52.0
4520
4521- checksrc: move open braces to comply with function declaration style
4522
4523- checksrc: detect wrongly placed open braces in func declarations
4524
4525- checksrc: white space edits to comply to stricter checksrc
4526
4527- checksrc: verify ASTERISKNOSPACE
4528
4529 Detects (char*) and 'char*foo' uses.
4530
4531- checksrc: code style: use 'char *name' style
4532
4533- checksrc: add ASTERISKSPACE
4534
4535 Verifies a 'char *name' style, with no space after the asterisk.
4536
4537- openssl: remove dead code
4538
4539 Coverity CID 1394666
4540
4541- [Okhin Vasilij brought this change]
4542
4543 HTTPS-proxy: fixed mbedtls and polishing
4544
4545- darwinssl: adopted to the HTTPS proxy changes
4546
4547 It builds and runs all test cases. No adaptations for actual HTTPS proxy
4548 support has been made.
4549
4550- gtls: fix indent to silence compiler warning
4551
4552 vtls/gtls.c: In function ‘Curl_gtls_data_pending’:
4553 vtls/gtls.c:1429:3: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
4554 if(conn->proxy_ssl[connindex].session &&
4555 ^~
4556 vtls/gtls.c:1433:5: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
4557 return res;
4558
4559- [Thomas Glanzmann brought this change]
4560
4561 mbedtls: Fix compile errors
4562
4563- [Alex Rousskov brought this change]
4564
4565 proxy: Support HTTPS proxy and SOCKS+HTTP(s)
4566
4567 * HTTPS proxies:
4568
4569 An HTTPS proxy receives all transactions over an SSL/TLS connection.
4570 Once a secure connection with the proxy is established, the user agent
4571 uses the proxy as usual, including sending CONNECT requests to instruct
4572 the proxy to establish a [usually secure] TCP tunnel with an origin
4573 server. HTTPS proxies protect nearly all aspects of user-proxy
4574 communications as opposed to HTTP proxies that receive all requests
4575 (including CONNECT requests) in vulnerable clear text.
4576
4577 With HTTPS proxies, it is possible to have two concurrent _nested_
4578 SSL/TLS sessions: the "outer" one between the user agent and the proxy
4579 and the "inner" one between the user agent and the origin server
4580 (through the proxy). This change adds supports for such nested sessions
4581 as well.
4582
4583 A secure connection with a proxy requires its own set of the usual SSL
4584 options (their actual descriptions differ and need polishing, see TODO):
4585
4586 --proxy-cacert FILE CA certificate to verify peer against
4587 --proxy-capath DIR CA directory to verify peer against
4588 --proxy-cert CERT[:PASSWD] Client certificate file and password
4589 --proxy-cert-type TYPE Certificate file type (DER/PEM/ENG)
4590 --proxy-ciphers LIST SSL ciphers to use
4591 --proxy-crlfile FILE Get a CRL list in PEM format from the file
4592 --proxy-insecure Allow connections to proxies with bad certs
4593 --proxy-key KEY Private key file name
4594 --proxy-key-type TYPE Private key file type (DER/PEM/ENG)
4595 --proxy-pass PASS Pass phrase for the private key
4596 --proxy-ssl-allow-beast Allow security flaw to improve interop
4597 --proxy-sslv2 Use SSLv2
4598 --proxy-sslv3 Use SSLv3
4599 --proxy-tlsv1 Use TLSv1
4600 --proxy-tlsuser USER TLS username
4601 --proxy-tlspassword STRING TLS password
4602 --proxy-tlsauthtype STRING TLS authentication type (default SRP)
4603
4604 All --proxy-foo options are independent from their --foo counterparts,
4605 except --proxy-crlfile which defaults to --crlfile and --proxy-capath
4606 which defaults to --capath.
4607
4608 Curl now also supports %{proxy_ssl_verify_result} --write-out variable,
4609 similar to the existing %{ssl_verify_result} variable.
4610
4611 Supported backends: OpenSSL, GnuTLS, and NSS.
4612
4613 * A SOCKS proxy + HTTP/HTTPS proxy combination:
4614
4615 If both --socks* and --proxy options are given, Curl first connects to
4616 the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS
4617 proxy.
4618
4619 TODO: Update documentation for the new APIs and --proxy-* options.
4620 Look for "Added in 7.XXX" marks.
4621
4622Patrick Monnerat (24 Nov 2016)
4623- Declare endian read functions argument as a const pointer.
4624 This is done for all functions of the form Curl_read[136][624]_[lb]e.
4625
4626- Limit ASN.1 structure sizes to 256K. Prevent some allocation size overflows.
4627 See CRL-01-006.
4628
4629Jay Satiro (22 Nov 2016)
4630- url: Fix conn reuse for local ports and interfaces
4631
4632 - Fix connection reuse for when the proposed new conn 'needle' has a
4633 specified local port but does not have a specified device interface.
4634
4635 Bug: https://curl.haxx.se/mail/lib-2016-11/0137.html
4636 Reported-by: bjt3[at]hotmail.com
4637
4638Daniel Stenberg (21 Nov 2016)
4639- rand: pass in number of randoms as an unsigned argument
4640
4641Jay Satiro (20 Nov 2016)
4642- rand: Fix potentially uninitialized result warning
4643
4644Marcel Raad (19 Nov 2016)
4645- vtls: fix build warnings
4646
4647 Fix warnings about conversions from long to time_t in openssl.c and
4648 schannel.c.
4649
4650 Follow-up to de4de4e3c7c
4651
4652Daniel Stenberg (18 Nov 2016)
4653- [Marcel Raad brought this change]
4654
4655 lib: fix compiler warnings after de4de4e3c7c
4656
4657 Visual C++ now complains about implicitly casting time_t (64-bit) to
4658 long (32-bit). Fix this by changing some variables from long to time_t,
4659 or explicitly casting to long where the public interface would be
4660 affected.
4661
4662 Closes #1131
4663
4664Peter Wu (17 Nov 2016)
4665- [Isaac Boukris brought this change]
4666
4667 Don't mix unix domain sockets with regular ones
4668
4669 When reusing a connection, make sure the unix domain
4670 socket option matches.
4671
4672Jay Satiro (17 Nov 2016)
4673- tests: Fix HTTP2-Settings header for huge window size
4674
4675 Follow-up to a4d8888. Changing the window size in that commit resulted
4676 in a different HTTP2-Settings upgrade header, causing test 1800 to fail.
4677
4678- http2: Use huge HTTP/2 windows
4679
4680 - Improve performance by using a huge HTTP/2 window size.
4681
4682 Bug: https://github.com/curl/curl/issues/1102
4683 Reported-by: afrind@users.noreply.github.com
4684 Assisted-by: Tatsuhiro Tsujikawa
4685
4686Daniel Stenberg (16 Nov 2016)
4687- cmdline-docs: more conversion
4688
4689- gen: support 'protos'
4690
4691 and warn on unrecognized lines
4692
4693- gen: support 'single' to make an individual page man page
4694
4695- cmdline-docs: more options converted over
4696
4697- gen: support 'redirect'
4698
4699 ... and warn for too long --help lines
4700
4701- cmdline/gen: replace options in texts better
4702
4703Jay Satiro (16 Nov 2016)
4704- http2: Fix address sanitizer memcpy warning
4705
4706 - In Curl_http2_switched don't call memcpy when src is NULL.
4707
4708 Curl_http2_switched can be called like:
4709
4710 Curl_http2_switched(conn, NULL, 0);
4711
4712 .. and prior to this change memcpy was then called like:
4713
4714 memcpy(dest, NULL, 0)
4715
4716 .. causing address sanitizer to warn:
4717
4718 http2.c:2057:3: runtime error: null pointer passed as argument 2, which
4719 is declared to never be null
4720
4721- tool_help: Clarify --dump-header only writes received headers
4722
4723- curl.1: Clarify --dump-header only writes received headers
4724
4725Daniel Stenberg (15 Nov 2016)
4726- [Alex Chan brought this change]
4727
4728 docs: Spelling fixes
4729
4730Kamil Dudka (15 Nov 2016)
4731- docs: the next release will be 7.52.0
4732
4733Daniel Stenberg (15 Nov 2016)
4734- cmdline-opts: support generating the --help output
4735
4736- [David Schweikert brought this change]
4737
4738 darwinssl: fix SSL client certificate not found on MacOS Sierra
4739
4740 Reviewed-by: Nick Zitzmann
4741
4742 Closes #1105
4743
4744- curl: add --fail-early to help output
4745
4746 Fixes test 1139 failures
4747
4748 Follow-up to f82bbe01c8835
4749
4750- glob: fix [a-c] globbing regression
4751
4752 Brought in ee4f76606cf
4753
4754 Added test case 1280 to verify
4755
4756 Reported-by: Dave Reisner
4757
4758 Bug: https://github.com/curl/curl/commit/ee4f76606cfa4ee068bf28edd37c8dae7e8db317#commitcomment-19823146
4759
4760- curl: add --fail-early
4761
4762 Exit with an error on the first transfer error instead of continuing to
4763 do the rest of the URLs.
4764
4765 Discussion: https://curl.haxx.se/mail/archive-2016-11/0038.html
4766
4767- Curl_rand: fixed and moved to rand.c
4768
4769 Now Curl_rand() is made to fail if it cannot get the necessary random
4770 level.
4771
4772 Changed the proto of Curl_rand() slightly to provide a number of ints at
4773 once.
4774
4775 Moved out from vtls, since it isn't a TLS function and vtls provides
4776 Curl_ssl_random() for this to use.
4777
4778 Discussion: https://curl.haxx.se/mail/lib-2016-11/0119.html
4779
4780- cmdline-opts: first test version of a new man page generator kit
4781
4782 See MANPAGE.md for the description of how this works. Each command line
4783 option is now described in a separate .d file.
4784
4785- time_t fix: follow-up to de4de4e3c7c
4786
4787 Blah, I accidentally wrote size_t instead of time_t for two variables.
4788
4789 Reported-by: Dave Reisner
4790
4791- timeval: prefer time_t to hold seconds instead of long
4792
4793 ... as long is still 32bit on modern 64bit windows machines, while
4794 time_t is generally 64bit.
4795
4796Dan Fandrich (12 Nov 2016)
4797- tests: fixed variable might be clobbered warning
4798
4799 This stops the compiler from potentially making invalid assumptions
4800 about the immutability of sdp and sap across the longjmp boundary.
4801
4802Daniel Stenberg (12 Nov 2016)
4803- RELEASE-NOTES: synced with 346340808c
4804
4805- URL-parser: for file://[host]/ URLs, the [host] must be localhost
4806
4807 Previously, the [host] part was just ignored which made libcurl accept
4808 strange URLs misleading users. like "file://etc/passwd" which might've
4809 looked like it refers to "/etc/passwd" but is just "/passwd" since the
4810 "etc" is an ignored host name.
4811
4812 Reported-by: Mike Crowe
4813 Assisted-by: Kamil Dudka
4814
4815- test558: adapt to 0649433da
4816
4817- openssl: make sure to fail in the unlikely event that PRNG seeding fails
4818
4819- openssl: avoid unnecessary seeding if already done
4820
4821 1.1.0+ does more of this by itself so we can avoid extra processing this
4822 way.
4823
4824- openssl: RAND_status always exists in OpenSSL >= 0.9.7
4825
4826 and remove RAND_screen from configure since nothing is using that
4827 function
4828
4829- Curl_pgrsUpdate: use dedicated function for time passed
4830
4831- realloc: use Curl_saferealloc to avoid common mistakes
4832
4833 Discussed: https://curl.haxx.se/mail/lib-2016-11/0087.html
4834
4835- [Daniel Hwang brought this change]
4836
4837 curl: Add --retry-connrefused
4838
4839 to consider ECONNREFUSED as a transient error.
4840
4841 Closes #1064
4842
4843- openssl: raise the max_version to 1.3 if asked for
4844
4845 Now I've managed to negotiate TLS 1.3 with https://enabled.tls13.com/ when
4846 using boringssl.
4847
4848Jay Satiro (9 Nov 2016)
4849- vtls: Fail on unrecognized param for CURLOPT_SSLVERSION
4850
4851 - Fix GnuTLS code for CURL_SSLVERSION_TLSv1_2 that broke when the
4852 TLS 1.3 support was added in 6ad3add.
4853
4854 - Homogenize across code for all backends the error message when TLS 1.3
4855 is not available to "<backend>: TLS 1.3 is not yet supported".
4856
4857 - Return an error when a user-specified ssl version is unrecognized.
4858
4859 ---
4860
4861 Prior to this change our code for some of the backends used the
4862 'default' label in the switch statement (ie ver unrecognized) for
4863 ssl.version and treated it the same as CURL_SSLVERSION_DEFAULT.
4864
4865 Bug: https://curl.haxx.se/mail/lib-2016-11/0048.html
4866 Reported-by: Kamil Dudka
4867
4868Daniel Stenberg (9 Nov 2016)
4869- [Isaac Boukris brought this change]
4870
4871 SPNEGO: Fix memory leak when authentication fails
4872
4873 If SPNEGO fails, cleanup the negotiate handle right away.
4874
4875 Fixes #1115
4876
4877 Signed-off-by: Isaac Boukris <iboukris@gmail.com>
4878 Reported-by: ashman-p
4879
4880- CODE_STYLE.md: link to INTERNALS.md correctly
4881
4882- bump: next version will be 7.52.0
4883
4884- RELEASE-NOTES: synced with dfcdaaba371e9a3
4885
4886- examples/fileupload.c: fclose the file as well
4887
4888- printf: fix ".*f" handling
4889
4890 It would always use precision 1 instead of reading it from the argument
4891 list as intended.
4892
4893 Reported-by: Ray Satiro
4894
4895 Bug: #1113
4896
4897- curl_formadd.3: *_FILECONTENT and *_FILE need the file to be kept
4898
4899 Reported-by: Frank Gevaerts
4900
4901Kamil Dudka (7 Nov 2016)
4902- nss: silence warning 'SSL_NEXT_PROTO_EARLY_VALUE not handled in switch'
4903
4904 ... with nss-3.26.0 and newer
4905
4906 Reported-by: Daniel Stenberg
4907
4908Daniel Stenberg (7 Nov 2016)
4909- openssl: initial TLS 1.3 adaptions
4910
4911 BoringSSL supports TLSv1.3 already, but these changes don't seem to be anough
4912 to get it working.
4913
4914- ssh: check md5 fingerprints case insensitively (regression)
4915
4916 Revert the change from ce8d09483eea but use the new function
4917
4918 Reported-by: Kamil Dudka
4919 Bug: https://github.com/curl/curl/commit/ce8d09483eea2fcb1b50e323e1a8ed1f3613b2e3#commitcomment-19666146
4920
4921Kamil Dudka (7 Nov 2016)
4922- curl: introduce the --tlsv1.3 option to force TLS 1.3
4923
4924 Fully implemented with the NSS backend only for now.
4925
4926 Reviewed-by: Ray Satiro
4927
4928- vtls: support TLS 1.3 via CURL_SSLVERSION_TLSv1_3
4929
4930 Fully implemented with the NSS backend only for now.
4931
4932 Reviewed-by: Ray Satiro
4933
4934- nss: map CURL_SSLVERSION_DEFAULT to NSS default
4935
4936 ... but make sure we use at least TLSv1.0 according to libcurl API
4937
4938 Reported-by: Cure53
4939 Reviewed-by: Ray Satiro
4940
4941Daniel Stenberg (7 Nov 2016)
4942- s/cURL/curl
4943
4944 We're mostly saying just "curl" in lower case these days so here's a big
4945 cleanup to adapt to this reality. A few instances are left as the
4946 project could still formally be considered called cURL.
4947
4948Jay Satiro (7 Nov 2016)
4949- [Tatsuhiro Tsujikawa brought this change]
4950
4951 http2: Don't send header fields prohibited by HTTP/2 spec
4952
4953 Previously, we just ignored "Connection" header field. But HTTP/2
4954 specification actually prohibits few more header fields. This commit
4955 ignores all of them so that we don't send these bad header fields.
4956
4957 Bug: https://curl.haxx.se/mail/archive-2016-10/0033.html
4958 Reported-by: Ricki Hirner
4959
4960 Closes https://github.com/curl/curl/pull/1092
4961
4962Daniel Stenberg (7 Nov 2016)
4963- curl.1: explain the SMTP data expected for -T
4964
4965 Fixes #1107
4966
4967 Reported-by: Adam Piggott
4968
4969Peter Wu (6 Nov 2016)
4970- cmake: disable poll for macOS
4971
4972 Mirrors the autotools behavior introduced with curl-7_50_3-83-ga34c7ce.
4973
4974 Fixes #1089
4975
4976Jay Satiro (5 Nov 2016)
4977- easy: Initialize info variables on easy init and duphandle
4978
4979 - Call Curl_initinfo on init and duphandle.
4980
4981 Prior to this change the statistical and informational variables were
4982 simply zeroed by calloc on easy init and duphandle. While zero is the
4983 correct default value for almost all info variables, there is one where
4984 it isn't (filetime initializes to -1).
4985
4986 Bug: https://github.com/curl/curl/issues/1103
4987 Reported-by: Neal Poole
4988
4989Daniel Stenberg (5 Nov 2016)
4990- [Mauro Rappa brought this change]
4991
4992 curl -w: added more decimal digits to timing counters
4993
4994 Now showing microsecond resolution.
4995
4996 Closes #1106
4997
4998Jakub Zakrzewski (4 Nov 2016)
4999- dist: add CMakeLists.txt to the tarball
5000
5001Daniel Stenberg (4 Nov 2016)
5002- mbedtls: fix build with mbedtls versions < 2.4.0
5003
5004 Regression added in 62a8095e714
5005
5006 Reported-by: Tony Kelman
5007
5008 Discussed in #1087
5009
5010- configure: verify that compiler groks -Werror=partial-availability
5011
5012 Reported-by: bemoody
5013
5014 Fixes #1104
5015
5016- docs: shorten and simplify the top comment in multi-uv.c
5017
5018 and change URL to use https
5019
5020- [Andrei Sedoi brought this change]
5021
5022 docs: handle CURL_POLL_INOUT in multi-uv example
5023
5024- [Andrei Sedoi brought this change]
5025
5026 docs: multi-uv: don't use CURLMsg after cleanup
5027
5028- [Andrei Sedoi brought this change]
5029
5030 docs: remove unused variables in multi-uv example
5031
5032- bump: start working on 7.51.1
5033
5034- winbuild: remove strcase.obj from curl build
5035
5036 Reported-by: Bruce Stephens
5037
5038 Fixes #1098
5039
5040Dan Fandrich (2 Nov 2016)
5041- msvc: removed a straggling reference to strequal.c
5042
5043 Follow-up to 502acba2
5044
5045Version 7.51.0 (2 Nov 2016)
5046
5047Daniel Stenberg (2 Nov 2016)
5048- THANKS: synced with 7.51.0
5049
5050- RELEASE-NOTES: 7.51.0
5051
5052- ftp_done: don't clobber the passed in error code
5053
5054 Coverity CID 1374359 pointed out the unused result value.
5055
5056- ftp: remove dead code in ftp_done
5057
5058 Coverity CID 1374358
5059
5060Jay Satiro (1 Nov 2016)
5061- generate.bat: Include include/curl in libcurl VS projects
5062
5063 .. because including those headers helps Visual Studio's Intellisense.
5064
5065- generate.bat: Remove strcase.[ch] from curl tool VS projects
5066
5067 ..because they're no longer needed in the tool build. strcase is still
5068 built by the libcurl project and exports curl_str(n)equal which is used
5069 by the curl tool.
5070
5071 Bug: https://github.com/curl/curl/commit/9363f1a#all_commit_comments
5072
5073Daniel Stenberg (2 Nov 2016)
5074- metalink: simplify the hex parsing function
5075
5076 ... and now it avoids using the libcurl toupper() function
5077
5078Michael Kaufmann (1 Nov 2016)
5079- file: fix compiler warning
5080
5081 follow-up to 46133aa5
5082
5083Dan Fandrich (1 Nov 2016)
5084- strcase: fixed Metalink builds by redefining checkprefix()
5085
5086 ...to use the public function curl_strnequal(). This isn't ideal because
5087 it adds extra overhead to any internal calls to checkprefix.
5088
5089 follow-up to 95bd2b3e
5090
5091Daniel Stenberg (1 Nov 2016)
5092- curl.1: typo
5093
5094- curl.1: expand on how multiple uses of -o looks
5095
5096 Suggested-by: Dan Jacobson
5097 Issue: https://github.com/curl/curl/issues/1097
5098
5099- tests/util: get a private strncasecompare clone
5100
5101 ... since the curlx_* code no longer provides one and we don't link
5102 libcurl to these test servers.
5103
5104- strcase: make the tool use curl_str[n]equal instead
5105
5106 As they are after all part of the public API. Saves space and reduces
5107 complexity. Remove the strcase defines from the curlx_ family.
5108
5109 Suggested-by: Dan Fandrich
5110 Idea: https://curl.haxx.se/mail/lib-2016-10/0136.html
5111
5112Kamil Dudka (31 Oct 2016)
5113- gskit, nss: do not include strequal.h
5114
5115 follow-up to 811a693b80
5116
5117Dan Fandrich (31 Oct 2016)
5118- strcasecompare: include curl.h in strcase.c
5119
5120 This should fix the "warning: 'curl_strequal' redeclared without
5121 dllimport attribute: previous dllimport ignored" message and subsequent
5122 link error on Windows because of the missing CURL_EXTERN on the
5123 prototype.
5124
5125Daniel Stenberg (31 Oct 2016)
5126- strcase: fix the remaining rawstr users
5127
5128- msvc builds: s/rawstr/strcase
5129
5130 Follow-up to 811a693b
5131
5132Dan Fandrich (31 Oct 2016)
5133- strcasecompare: replaced remaining rawstr.h with strcase.h
5134
5135 This is a followup to commit 811a693b
5136
5137Marcel Raad (31 Oct 2016)
5138- digest_sspi: fix include
5139
5140 Fix compile break from 811a693b80
5141
5142Dan Fandrich (31 Oct 2016)
5143- libauthretry: use the external function curl_strequal
5144
5145 The internal version strcasecompare isn't available outside libcurl
5146
5147Daniel Stenberg (31 Oct 2016)
5148- RELEASE-NOTES: synced with d14538d2501ef0da
5149
5150- configure: raise the default minimum version for macos to 10.8
5151
5152 follow-up to 4f8d0b6f02aa7043. Since the darwinssl code breaks
5153 otherwise. If you build without darwinssl 10.5 works fine.
5154
5155- unit1301: keep testing curl_strequal
5156
5157 as that is still part of the API, fix from 8fe4bd084412f30
5158
5159- ldap: fix include
5160
5161 Fix bug from 811a693b80
5162
5163- url: remove unconditional idn2.h include
5164
5165 Mistake brought by 9c91ec778104a
5166
5167- curl_strequal: part of public API/ABI, needs to be kept
5168
5169 These two public functions have been mentioned as deprecated since a
5170 very long time but since they are still part of the API and ABI we need
5171 to keep them around.
5172
5173- strcase: s/strequal/strcasecompare
5174
5175 some more follow-ups to 811a693b80
5176
5177- ldap: fix strcase use
5178
5179 follow-up to 811a693b80
5180
5181- test165: adapted to the libidn2 use and IDNA2008 fix
5182
5183- cookie: replace use of fgets() with custom version
5184
5185 ... that will ignore lines that are too long to fit in the buffer.
5186
5187 CVE-2016-8615
5188
5189 Bug: https://curl.haxx.se/docs/adv_20161102A.html
5190 Reported-by: Cure53
5191
5192- strcasecompare: all case insensitive string compares ignore locale now
5193
5194 We had some confusions on when each function was used. We should not act
5195 differently on different locales anyway.
5196
5197- strcasecompare: is the new name for strequal()
5198
5199 ... to make it less likely that we forget that the function actually
5200 does case insentive compares. Also replaced several invokes of the
5201 function with a plain strcmp when case sensitivity is not an issue (like
5202 comparing with "-").
5203
5204- ftp: check for previous patch must be case sensitive!
5205
5206 ... otherwise example.com/PATH and example.com/path would be assumed to
5207 be the same and they usually aren't!
5208
5209- SSH: check md5 fingerprint case sensitively
5210
5211- connectionexists: use case sensitive user/password comparisons
5212
5213 CVE-2016-8616
5214
5215 Bug: https://curl.haxx.se/docs/adv_20161102B.html
5216 Reported-by: Cure53
5217
5218- base64: check for integer overflow on large input
5219
5220 CVE-2016-8617
5221
5222 Bug: https://curl.haxx.se/docs/adv_20161102C.html
5223 Reported-by: Cure53
5224
5225- krb5: avoid realloc(0)
5226
5227 If the requested size is zero, bail out with error instead of doing a
5228 realloc() that would cause a double-free: realloc(0) acts as a free()
5229 and then there's a second free in the cleanup path.
5230
5231 CVE-2016-8619
5232
5233 Bug: https://curl.haxx.se/docs/adv_20161102E.html
5234 Reported-by: Cure53
5235
5236- aprintf: detect wrap-around when growing allocation
5237
5238 On 32bit systems we could otherwise wrap around after 2GB and allocate 0
5239 bytes and crash.
5240
5241 CVE-2016-8618
5242
5243 Bug: https://curl.haxx.se/docs/adv_20161102D.html
5244 Reported-by: Cure53
5245
5246- range: reject char globs with missing end like '[L-]'
5247
5248 ... which previously would lead to out of boundary reads.
5249
5250 Reported-by: Luật Nguyễn
5251
5252- glob_next_url: make sure to stay within the given output buffer
5253
5254- range: prevent negative end number in a glob range
5255
5256 CVE-2016-8620
5257
5258 Bug: https://curl.haxx.se/docs/adv_20161102F.html
5259 Reported-by: Luật Nguyễn
5260
5261- parsedate: handle cut off numbers better
5262
5263 ... and don't read outside of the given buffer!
5264
5265 CVE-2016-8621
5266
5267 bug: https://curl.haxx.se/docs/adv_20161102G.html
5268 Reported-by: Luật Nguyễn
5269
5270- escape: avoid using curl_easy_unescape() internally
5271
5272 Since the internal Curl_urldecode() function has a better API.
5273
5274- unescape: avoid integer overflow
5275
5276 CVE-2016-8622
5277
5278 Bug: https://curl.haxx.se/docs/adv_20161102H.html
5279 Reported-by: Cure53
5280
5281- cookies: getlist() now holds deep copies of all cookies
5282
5283 Previously it only held references to them, which was reckless as the
5284 thread lock was released so the cookies could get modified by other
5285 handles that share the same cookie jar over the share interface.
5286
5287 CVE-2016-8623
5288
5289 Bug: https://curl.haxx.se/docs/adv_20161102I.html
5290 Reported-by: Cure53
5291
5292- TODO: remove IDNA2008
5293
5294- idn: switch to libidn2 use and IDNA2008 support
5295
5296 CVE-2016-8625
5297
5298 Bug: https://curl.haxx.se/docs/adv_20161102K.html
5299 Reported-by: Christian Heimes
5300
5301- test1246: verify URL parsing with host name ending with '#'
5302
5303- urlparse: accept '#' as end of host name
5304
5305 'http://example.com#@127.0.0.1/x.txt' equals a request to example.com
5306 for the '/' document with the rest of the URL being a fragment.
5307
5308 CVE-2016-8624
5309
5310 Bug: https://curl.haxx.se/docs/adv_20161102J.html
5311 Reported-by: Fernando Muñoz
5312
5313Jay Satiro (31 Oct 2016)
5314- INTERNALS: better markdown (follow-up)
5315
5316 - Wrap more words with underscores in backticks.
5317
5318 Follow-up to 13f4913.
5319
5320Daniel Stenberg (30 Oct 2016)
5321- INTERNALS: better markdown
5322
5323 words with underscore need to be within `these`
5324
5325 Bug: https://github.com/curl/curl-www/issues/19
5326 Reported-by : Jay Satiro
5327
5328Jay Satiro (30 Oct 2016)
5329- mk-ca-bundle.vbs: Fix UTF-8 output
5330
5331 - Change initial message box to mention delay when downloading/parsing.
5332
5333 Since there is no progress meter it was somewhat unexpected that after
5334 choosing a filename nothing appears to happen, when actually the cert
5335 data is in the process of being downloaded and parsed.
5336
5337 - Warn if OpenSSL is not present.
5338
5339 - Use a UTF-8 stream to make the ca-bundle data.
5340
5341 - Save the UTF-8 ca-bundle stream as binary so that no BOM is added.
5342
5343 ---
5344
5345 This is a follow-up to d2c6d15 which switched mk-ca-bundle.vbs output to
5346 ANSI due to corrupt UTF-8 output, now fixed.
5347
5348 This change completes making the default certificate bundle output of
5349 mk-ca-bundle.vbs as close as possible to that of mk-ca-bundle.pl, which
5350 should make it easier to review any difference between their output.
5351
5352 Ref: https://github.com/curl/curl/pull/1012
5353
5354Daniel Stenberg (28 Oct 2016)
5355- BINDINGS: converted to markdown
5356
5357 To make it render better on the web site, at the price of it becoming
5358 slightly less readable as text.
5359
5360Jay Satiro (27 Oct 2016)
5361- CURLMOPT_MAX_PIPELINE_LENGTH.3: Clarify it's not for HTTP/2
5362
5363 - Clarify that this option is only for HTTP/1.1 pipelining.
5364
5365 Bug: https://github.com/curl/curl/issues/1059
5366 Reported-by: Jeroen Ooms
5367
5368 Assisted-by: Daniel Stenberg
5369
5370Daniel Stenberg (27 Oct 2016)
5371- KNOWN_BUGS: HTTP/2 server push enabled when no pushes can be accepted
5372
5373 Closes #927
5374
5375- KNOWN_BUGS: c-ares deviates from stock resolver on http://1346569778
5376
5377 Closes #893
5378
5379Michael Osipov (27 Oct 2016)
5380- configure.in: Fix test syntax
5381
5382 Some versions of test allow == for equality, but others (such as the HP-UX
5383 version) do not. Use a single = for correctness.
5384
5385 Error output:
5386 checking for monotonic clock_gettime... ./configure[20445]: ==: A test command parameter is not valid.
5387
5388Daniel Stenberg (27 Oct 2016)
5389- SECURITY: minor updates
5390
5391 - we allow the security push up to 48 hours before the release
5392
5393 - add a mention about possible pre-notifications
5394
5395 - lower case the 'curl-security' title
5396
5397- [Andrei Sedoi brought this change]
5398
5399 docs: fix req->data in multi-uv example
5400
5401 Closes #1088
5402
5403- mbedtls: stop using deprecated include file
5404
5405 Reported-by: wyattoday
5406 Fixes #1087
5407
5408Kamil Dudka (25 Oct 2016)
5409- [Martin Frodl brought this change]
5410
5411 nss: fix tight loop in non-blocking TLS handhsake over proxy
5412
5413 ... in case the handshake completes before entering
5414 CURLM_STATE_PROTOCONNECT
5415
5416 Bug: https://bugzilla.redhat.com/1388162
5417
5418Jay Satiro (25 Oct 2016)
5419- mk-ca-bundle: Update the vbscript version
5420
5421 Bring the VBScript version more in line with the perl version:
5422
5423 - Change timestamp to UTC.
5424
5425 - Change URL retrieval to HTTPS-only by default.
5426
5427 - Comment out the options that disabled SSL cert checking by default.
5428
5429 - Assume OpenSSL is present, get SHA256. And add a flag to toggle it.
5430
5431 - Fix cert issuer name output.
5432
5433 The cert issuer output is now ansi, converted from UTF-8. Prior to this
5434 it was corrupt UTF-8. It turns out though we can work with UTF-8 the
5435 FSO object that writes ca-bundle can't write UTF-8, so there will have
5436 to be some alternative if UTF-8 is needed (like an ADODB.Stream).
5437
5438 - Disable the certificate text info feature.
5439
5440 The certificate text info doesn't work properly with any recent OpenSSL.
5441
5442Daniel Stenberg (24 Oct 2016)
5443- TODO: indent code to make it render properly
5444
5445- TODO: Remove the generated include file
5446
5447- TODO: add "--retry should resume"
5448
5449 See #1084
5450
5451- mk-ca-bundle.1: document -k
5452
5453 Brought in 1ad2bdcf110266c. Now does HTTPS by default and needs -k to
5454 fall back to plain HTTP.
5455
5456- [Jay Satiro brought this change]
5457
5458 mk-ca-bundle: Change URL retrieval to HTTPS-only by default
5459
5460 - Change all predefined Mozilla URLs to HTTPS (Gregory Szorc).
5461
5462 - New option -k to allow URLs other than HTTPS and enable HTTP fallback.
5463
5464 Prior to this change the default URL retrieval mode was to fall back to
5465 HTTP if HTTPS didn't work.
5466
5467 Reported-by: Gregory Szorc
5468
5469 Closes #1012
5470
5471- RELEASE-NOTES: synced with 50ee3aaf1a9b22d
5472
5473Dan Fandrich (23 Oct 2016)
5474- INSTALL.md: Updated minimum file sizes for 7.50.3
5475
5476Daniel Stenberg (22 Oct 2016)
5477- multi: force connections to get closed in close_all_connections
5478
5479 Several independent reports on infinite loops hanging in the
5480 close_all_connections() function when closing a multi handle, can be
5481 fixed by first marking the connection to get closed before calling
5482 Curl_disconnect.
5483
5484 This is more fixing-the-symptom rather than the underlying problem
5485 though.
5486
5487 Bug: https://curl.haxx.se/mail/lib-2016-10/0011.html
5488 Bug: https://curl.haxx.se/mail/lib-2016-10/0059.html
5489
5490 Reported-by: Dan Fandrich, Valentin David, Miloš Ljumović
5491
5492- [Anders Bakken brought this change]
5493
5494 curl_multi_remove_handle: fix a double-free
5495
5496 In short the easy handle needs to be disconnected from its connection at
5497 this point since the connection still is serving other easy handles.
5498
5499 In our app we can reliably reproduce a crash in our http2 stress test
5500 that is fixed by this change. I can't easily reproduce the same test in
5501 a small example.
5502
5503 This is the gdb/asan output:
5504
5505 ==11785==ERROR: AddressSanitizer: heap-use-after-free on address 0xe9f4fb80 at pc 0x09f41f19 bp 0xf27be688 sp 0xf27be67c
5506 READ of size 4 at 0xe9f4fb80 thread T13 (RESOURCE_HTTP)
5507 #0 0x9f41f18 in curl_multi_remove_handle /path/to/source/3rdparty/curl/lib/multi.c:666
5508
5509 0xe9f4fb80 is located 0 bytes inside of 1128-byte region [0xe9f4fb80,0xe9f4ffe8)
5510 freed by thread T13 (RESOURCE_HTTP) here:
5511 #0 0xf7b1b5c2 in __interceptor_free /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_malloc_linux.cc:45
5512 #1 0x9f7862d in conn_free /path/to/source/3rdparty/curl/lib/url.c:2808
5513 #2 0x9f78c6a in Curl_disconnect /path/to/source/3rdparty/curl/lib/url.c:2876
5514 #3 0x9f41b09 in multi_done /path/to/source/3rdparty/curl/lib/multi.c:615
5515 #4 0x9f48017 in multi_runsingle /path/to/source/3rdparty/curl/lib/multi.c:1896
5516 #5 0x9f490f1 in curl_multi_perform /path/to/source/3rdparty/curl/lib/multi.c:2123
5517 #6 0x9c4443c in perform /path/to/source/src/net/resourcemanager/ResourceManagerCurlThread.cpp:854
5518 #7 0x9c445e0 in ...
5519 #8 0x9c4cf1d in ...
5520 #9 0xa2be6b5 in ...
5521 #10 0xf7aa5780 in asan_thread_start /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
5522 #11 0xf4d3a16d in __clone (/lib/i386-linux-gnu/libc.so.6+0xe716d)
5523
5524 previously allocated by thread T13 (RESOURCE_HTTP) here:
5525 #0 0xf7b1ba27 in __interceptor_calloc /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_malloc_linux.cc:70
5526 #1 0x9f7dfa6 in allocate_conn /path/to/source/3rdparty/curl/lib/url.c:3904
5527 #2 0x9f88ca0 in create_conn /path/to/source/3rdparty/curl/lib/url.c:5797
5528 #3 0x9f8c928 in Curl_connect /path/to/source/3rdparty/curl/lib/url.c:6438
5529 #4 0x9f45a8c in multi_runsingle /path/to/source/3rdparty/curl/lib/multi.c:1411
5530 #5 0x9f490f1 in curl_multi_perform /path/to/source/3rdparty/curl/lib/multi.c:2123
5531 #6 0x9c4443c in perform /path/to/source/src/net/resourcemanager/ResourceManagerCurlThread.cpp:854
5532 #7 0x9c445e0 in ...
5533 #8 0x9c4cf1d in ...
5534 #9 0xa2be6b5 in ...
5535 #10 0xf7aa5780 in asan_thread_start /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
5536 #11 0xf4d3a16d in __clone (/lib/i386-linux-gnu/libc.so.6+0xe716d)
5537
5538 SUMMARY: AddressSanitizer: heap-use-after-free /path/to/source/3rdparty/curl/lib/multi.c:666 in curl_multi_remove_handle
5539 Shadow bytes around the buggy address:
5540 0x3d3e9f20: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5541 0x3d3e9f30: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5542 0x3d3e9f40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5543 0x3d3e9f50: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
5544 0x3d3e9f60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
5545 =>0x3d3e9f70:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5546 0x3d3e9f80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5547 0x3d3e9f90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5548 0x3d3e9fa0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5549 0x3d3e9fb0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5550 0x3d3e9fc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
5551 Shadow byte legend (one shadow byte represents 8 application bytes):
5552 Addressable: 00
5553 Partially addressable: 01 02 03 04 05 06 07
5554 Heap left redzone: fa
5555 Heap right redzone: fb
5556 Freed heap region: fd
5557 Stack left redzone: f1
5558 Stack mid redzone: f2
5559 Stack right redzone: f3
5560 Stack partial redzone: f4
5561 Stack after return: f5
5562 Stack use after scope: f8
5563 Global redzone: f9
5564 Global init order: f6
5565 Poisoned by user: f7
5566 Container overflow: fc
5567 Array cookie: ac
5568 Intra object redzone: bb
5569 ASan internal: fe
5570 Left alloca redzone: ca
5571 Right alloca redzone: cb
5572 ==11785==ABORTING
5573
5574 Thread 14 "RESOURCE_HTTP" received signal SIGABRT, Aborted.
5575 [Switching to Thread 0xf27bfb40 (LWP 12324)]
5576 0xf7fd8be9 in __kernel_vsyscall ()
5577 (gdb) bt
5578 #0 0xf7fd8be9 in __kernel_vsyscall ()
5579 #1 0xf4c7ee89 in __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:54
5580 #2 0xf4c803e7 in __GI_abort () at abort.c:89
5581 #3 0xf7b2ef2e in __sanitizer::Abort () at /opt/toolchain/src/gcc-6.2.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc:122
5582 #4 0xf7b262fa in __sanitizer::Die () at /opt/toolchain/src/gcc-6.2.0/libsanitizer/sanitizer_common/sanitizer_common.cc:145
5583 #5 0xf7b21ab3 in __asan::ScopedInErrorReport::~ScopedInErrorReport (this=0xf27be171, __in_chrg=<optimized out>) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_report.cc:689
5584 #6 0xf7b214a5 in __asan::ReportGenericError (pc=166993689, bp=4068206216, sp=4068206204, addr=3925146496, is_write=false, access_size=4, exp=0, fatal=true) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_report.cc:1074
5585 #7 0xf7b21fce in __asan::__asan_report_load4 (addr=3925146496) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_rtl.cc:129
5586 #8 0x09f41f19 in curl_multi_remove_handle (multi=0xf3406080, data=0xde582400) at /path/to/source3rdparty/curl/lib/multi.c:666
5587 #9 0x09f6b277 in Curl_close (data=0xde582400) at /path/to/source3rdparty/curl/lib/url.c:415
5588 #10 0x09f3354e in curl_easy_cleanup (data=0xde582400) at /path/to/source3rdparty/curl/lib/easy.c:860
5589 #11 0x09c6de3f in ...
5590 #12 0x09c378c5 in ...
5591 #13 0x09c48133 in ...
5592 #14 0x09c4d092 in ...
5593 #15 0x0a2be6b6 in ...
5594 #16 0xf7aa5781 in asan_thread_start (arg=0xf2d22938) at /opt/toolchain/src/gcc-6.2.0/libsanitizer/asan/asan_interceptors.cc:226
5595 #17 0xf5de52b5 in start_thread (arg=0xf27bfb40) at pthread_create.c:333
5596 #18 0xf4d3a16e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:114
5597
5598 Fixes #1083
5599
5600- testcurl.1: fix the URL to the autobuild summary
5601
5602- testcurl.1: update URLs
5603
5604- INSTALL: converted to markdown => INSTALL.md
5605
5606 Also heavily edited for content. Removed lots of old cruft that we added
5607 like 10+ years ago that is likely incorrect by now.
5608
5609 Also removed INSTALL.devcpp for same reason.
5610
5611- [Martin Storsjo brought this change]
5612
5613 configure: Check for other variants of the -m*os*-version-min flags
5614
5615 In addition to -miphoneos-version-min, the same version can be set
5616 using -mios-version-min. And for WatchOS and TvOS, there's
5617 -mwatchos-version-min and -mtvos-version-min.
5618
5619- configure: set min version flags for builds on mac
5620
5621 This helps building binaries that can work on multiple macOS versions.
5622
5623 Help-by: Martin Storsjö
5624
5625 Fixes #1069
5626
5627- curl_multi_add_handle: set timeouts in closure handles
5628
5629 The closure handle only ever has default timeouts set. To improve the
5630 state somewhat we clone the timeouts from each added handle so that the
5631 closure handle always has the same timeouts as the most recently added
5632 easy handle.
5633
5634 Fixes #739
5635
5636- configure/CURL_CHECK_FUNC_POLL: disable poll completely on mac
5637
5638 ... so that the same libcurl build easier can run on any version.
5639
5640 Follow-up to issue #1057
5641
5642- RELEASE-NOTES: synced with f36f8c14551efc6772
5643
5644- test14xx: fixed --libcurl output tests again after 8e8afa82cbb
5645
5646- s/cURL/curl
5647
5648 The tool was never called cURL, only the project. But even so, we have
5649 more and more over time switched to just use lower case.
5650
5651- polarssl: indented code, removed unused variables
5652
5653- polarssl: reduce #ifdef madness with a macro
5654
5655- polarssl: fix unaligned SSL session-id lock
5656
5657- Curl_polarsslthreadlock_thread_setup: clear array at init
5658
5659 ... since if it fails to init the entire array and then tries to clean
5660 it up, it would attempt to work on an uninitialized pointer.
5661
5662- curl: set INTERLEAVEDATA too
5663
5664 As otherwise the callback could be called with a NULL pointer when RTSP
5665 data is provided.
5666
5667- gopher: properly return error for poll failures
5668
5669- select: switch to macros in uppercase
5670
5671 Curl_select_ready() was the former API that was replaced with
5672 Curl_select_check() a while back and the former arg setup was provided
5673 with a define (in order to leave existing code unmodified).
5674
5675 Now we instead offer SOCKET_READABLE and SOCKET_WRITABLE for the most
5676 common shortcuts where only one socket is checked. They're also more
5677 visibly macros.
5678
5679- select: use more proper macro-looking names
5680
5681 ... so that it becomes more obvious in the code what is what. Also added
5682 a typecast for one of the calculations.
5683
5684- Curl_socket_check: add extra check to avoid integer overflow
5685
5686- maketgz: make it support "only" generating version info
5687
5688 ... to allow you to update the local repository with the given version
5689 number data.
5690
5691Jay Satiro (17 Oct 2016)
5692- url: skip to-be-closed connections when pipelining (follow-up)
5693
5694 - Change back behavior so that pipelining is considered possible for
5695 connections that have not yet reached the protocol level.
5696
5697 This is a follow-up to e5f0b1a which had changed the behavior of
5698 checking if pipelining is possible to ignore connections that had
5699 'bits.close' set. Connections that have not yet reached the protocol
5700 level also have that bit set, and we need to consider pipelining
5701 possible on those connections.
5702
5703Daniel Stenberg (17 Oct 2016)
5704- HTTP2: mention the tool's limited support
5705
5706- RELEASE-NOTES: synced with a1a5cd04877fd6fd
5707
5708- [David Woodhouse brought this change]
5709
5710 curl: do not set CURLOPT_SSLENGINEDEFAULT automatically
5711
5712 There were bugs in the PKCS#11 engine, and fixing them triggers bugs in
5713 OpenSSL. Just don't get involved; there's no need to be making the
5714 engine methods the default anyway.
5715
5716 https://github.com/OpenSC/libp11/pull/108
5717 https://github.com/openssl/openssl/pull/1639
5718
5719 Merges #1042
5720
5721- KNOWN_BUGS: two more existing problems
5722
5723Marcel Raad (16 Oct 2016)
5724- win: fix Universal Windows Platform build
5725
5726 This fixes a merge error in commit 7f3df80 caused by commit 332e8d6.
5727
5728 Additionally, this changes Curl_verify_windows_version for Windows App
5729 builds to assume to always be running on the target Windows version.
5730 There seems to be no way to determine the Windows version from a
5731 UWP app. Neither GetVersion(Ex), nor VerifyVersionInfo, nor the
5732 Version Helper functions are supported.
5733
5734 Bug: https://github.com/curl/curl/pull/820#issuecomment-250889878
5735 Reported-by: Paul Joyce
5736
5737 Closes https://github.com/curl/curl/pull/1048
5738
5739Daniel Stenberg (16 Oct 2016)
5740- KNOWN_BUGS: minor formatting edit
5741
5742Jay Satiro (14 Oct 2016)
5743- [Rider Linden brought this change]
5744
5745 url: skip to-be-closed connections when pipelining
5746
5747 No longer attempt to use "doomed" to-be-closed connections when
5748 pipelining. Prior to this change connections marked for deletion (e.g.
5749 timeout) would be erroneously used, resulting in sporadic crashes.
5750
5751 As originally reported and fixed by Carlo Wood (origin unknown).
5752
5753 Bug: https://github.com/curl/curl/issues/627
5754 Reported-by: Rider Linden
5755
5756 Closes https://github.com/curl/curl/pull/1075
5757 Participation-by: nopjmp@users.noreply.github.com
5758
5759Daniel Stenberg (13 Oct 2016)
5760- vtls: only re-use session-ids using the same scheme
5761
5762 To make it harder to do cross-protocol mistakes
5763
5764Jay Satiro (11 Oct 2016)
5765- [Torben Dannhauer brought this change]
5766
5767 dist: add missing cmake modules to the tarball
5768
5769 Closes https://github.com/curl/curl/pull/1070
5770
5771Daniel Stenberg (11 Oct 2016)
5772- configure: detect the broken poll() in macOS 10.12
5773
5774 Fixes #1057
5775
5776- dist: remove PDF and HTML converted docs from the releases
5777
5778- [Remo E brought this change]
5779
5780 cmake: add nghttp2 support
5781
5782 Closes #922
5783
5784- [Andreas Streichardt brought this change]
5785
5786 resolve: add error message when resolving using SIGALRM
5787
5788 Closes #1066
5789
5790- GIT-INFO: remove the Mac 10.1-specific details
5791
5792 There shouldn't be many devs out there anymore using such outdated macOS
5793 versions. And it removes the dead link.
5794
5795 Closes #1049
5796
5797- RELEASE-NOTES: spellfix
5798
5799- RELEASE-NOTES: synced with 82720490628cb53a
5800
5801 5 more fixes, 2 more contributors
5802
5803- [Tobias Stoeckmann brought this change]
5804
5805 smb: properly check incoming packet boundaries
5806
5807 Not all reply messages were properly checked for their lengths, which
5808 made it possible to access uninitialized memory (but this does not lead
5809 to out of boundary accesses).
5810
5811 Closes #1052
5812
5813- test557: verify printf() with 128 and 129 arguments
5814
5815- mprintf: return error on too many arguments
5816
5817 128 arguments should be enough for everyone
5818
5819- ftp: fix Curl_ftpsendf()
5820
5821 ... it no longer takes printf() arguments since it was only really taken
5822 advantage by one user and it was not written and used in a safe
5823 way. Thus the 'f' is removed from the function name and the proto is
5824 changed.
5825
5826 Although the current code wouldn't end up in badness, it was a risk that
5827 future changes could end up springf()ing too large data or passing in a
5828 format string inadvertently.
5829
5830- formpost: avoid silent snprintf() truncation
5831
5832 The previous use of snprintf() could make libcurl silently truncate some
5833 input data and not report that back on overly large input, which could
5834 make data get sent over the network in a bad format.
5835
5836 Example:
5837
5838 $ curl --form 'a=b' -H "Content-Type: $(perl -e 'print "A"x4100')"
5839
5840- TODO: build: Enable PIE and RELRO by default
5841
5842- TODO: Support better than MD5 hostkey hash (for ssh)
5843
5844- [Daniel Gustafsson brought this change]
5845
5846 tests: Fix a small typo in the tests README (#1060)
5847
5848 The subdirectory for logs in tests/ is named log/ without an 's'
5849 at the end.
5850
5851- TODO: Introduce --fail-fast to exit on first transfer fail
5852
5853 See #1054
5854
5855- TODO: Leave secure cookies alone
5856
5857- [Rainer Müller brought this change]
5858
5859 CURLOPT_DEBUGFUNCTION.3: unused argument warning (#1056)
5860
5861 The 'userp' argument is unused in this example code.
5862
5863- TODO: TCP Fast Open for windows
5864
5865- RELEASE-NOTES: synced with 8fd2a754f0de
5866
5867- CURLOPT_KEEP_SENDING_ON_ERROR.3: mention when it is added
5868
5869- memdup: use 'void *' as return and source type
5870
5871- TODO: Add easy argument to formpost functions
5872
5873- formpost: trying to attach a directory no longer crashes
5874
5875 The error path would previously add a freed entry to the linked list.
5876
5877 Reported-by: Toby Peterson
5878
5879 Fixes #1053
5880
5881- [Sergei Kuzmin brought this change]
5882
5883 cookies: same domain handling changed to match browser behavior
5884
5885 Cokie with the same domain but different tailmatching property are now
5886 considered different and do not replace each other. If header contains
5887 following lines then two cookies will be set: Set-Cookie: foo=bar;
5888 domain=.foo.com; expires=Thu Mar 3 GMT 8:56:27 2033 Set-Cookie: foo=baz;
5889 domain=foo.com; expires=Thu Mar 3 GMT 8:56:27 2033
5890
5891 This matches Chrome, Opera, Safari, and Firefox behavior. When sending
5892 stored tokens to foo.com Chrome, Opera, Firefox store send them in the
5893 stored order, while Safari pre-sort the cookies.
5894
5895 Closes #1050
5896
5897- [Stephen Brokenshire brought this change]
5898
5899 FAQ: Fix typos in section 5.14 (#1047)
5900
5901 Type required for YourClass::func C++ function (using size_t in line
5902 with the documentation for CURLOPT_WRITEFUNCTION) and missing second
5903 colon when specifying the static function for CURLOPT_WRITEFUNCTION.
5904
5905- [Sebastian Mundry brought this change]
5906
5907 KNOWN_BUGS: Fix typos in section 5.8.
5908
5909 Closes #1046
5910
5911- [mundry brought this change]
5912
5913 CONTRIBUTE.md: Fix typo in 'About pull requests' section. (#1045)
5914
5915- curl.1: --trace supports % for sending to stderr!
5916
5917- KNOWN_BUGS: 5.8 configure finding libs in wrong directory
5918
5919Dan Fandrich (24 Sep 2016)
5920- configure: Fixed builds with libssh2 in a custom location
5921
5922 A libssh2 library in the standard system location was being used in
5923 preference to the desired one while linking.
5924
5925Daniel Stenberg (23 Sep 2016)
5926- SECURITY: remove the top ascii logo
5927
5928Michael Kaufmann (22 Sep 2016)
5929- New libcurl option to keep sending on error
5930
5931 Add the new option CURLOPT_KEEP_SENDING_ON_ERROR to control whether
5932 sending the request body shall be completed when the server responds
5933 early with an error status code.
5934
5935 This is suitable for manual NTLM authentication.
5936
5937 Reviewed-by: Jay Satiro
5938
5939 Closes https://github.com/curl/curl/pull/904
5940
5941Kamil Dudka (22 Sep 2016)
5942- nss: add chacha20-poly1305 cipher suites if supported by NSS
5943
5944- nss: add cipher suites using SHA384 if supported by NSS
5945
5946- nss: fix typo in ecdhe_rsa_null cipher suite string
5947
5948 As it seems to be a rarely used cipher suite (for securely established
5949 but _unencrypted_ connections), I believe it is fine not to provide an
5950 alias for the misspelled variant.
5951
5952Jay Satiro (21 Sep 2016)
5953- docs: Remove that --proto is just used for initial retrieval
5954
5955 .. and add that --proto-redir and CURLOPT_REDIR_PROTOCOLS do not
5956 override protocols denied by --proto and CURLOPT_PROTOCOLS.
5957
5958 - Add a test to enforce: --proto deny must override --proto-redir allow
5959
5960 Closes https://github.com/curl/curl/pull/1031
5961
5962Daniel Stenberg (21 Sep 2016)
5963- dist: add CurlSymbolHiding.cmake to the tarball
5964
5965 Follow-up to 6140dfcf3e784
5966
5967 Reported-by: Alexander Sinditskiy
5968
5969- curl_global_cleanup.3: don't unload the lib with sub threads running
5970
5971 Discussed in #997
5972
5973 Assisted-by: Jay Satiro
5974
5975- MAIL-ETIQUETTE: language
5976
5977Jay Satiro (20 Sep 2016)
5978- easy: Reset all statistical session info in curl_easy_reset
5979
5980 Bug: https://github.com/curl/curl/issues/1017
5981 Reported-by: Jeroen Ooms
5982
5983Daniel Stenberg (19 Sep 2016)
5984- RELEASE-NOTES: synced with 79607eec51055
5985
5986Jay Satiro (19 Sep 2016)
5987- [Daniel Gustafsson brought this change]
5988
5989 darwinssl: Fix typo in comment
5990
5991 Closes https://github.com/curl/curl/pull/1028
5992
5993Daniel Stenberg (19 Sep 2016)
5994- [Bernard Spil brought this change]
5995
5996 libressl: fix version output
5997
5998 LibreSSL defines `OPENSSL_VERSION_NUMBER` as `0x20000000L` for all
5999 versions returning `LibreSSL/2.0.0` for any LibreSSL version.
6000
6001 This change provides a local OpenSSL_version_num function replacement
6002 returning LIBRESSL_VERSION_NUMBER instead.
6003
6004 Closes #1029
6005
6006- [rugk brought this change]
6007
6008 TODO: Add PINNEDPUBLICKEY - HPKP compatibility, HSTS & HPKP
6009
6010 Closes #1025
6011 Closes #1026
6012 Closes #1027
6013
6014- openssl: don't call ERR_remote_thread_state on >= 1.1.0
6015
6016 Follow-up fix to d9321562
6017
6018- openssl: don’t call CRYTPO_cleanup_all_ex_data
6019
6020 The OpenSSL function CRYTPO_cleanup_all_ex_data() cannot be called
6021 multiple times without crashing - and other libs might call it! We
6022 basically cannot call it without risking a crash. The function is a
6023 no-op since OpenSSL 1.1.0.
6024
6025 Not calling this function only risks a small memory leak with OpenSSL <
6026 1.1.0.
6027
6028 Bug: https://curl.haxx.se/mail/lib-2016-09/0045.html
6029 Reported-by: Todd Short
6030
6031- TODO: Support SSLKEYLOGFILE
6032
6033Jay Satiro (18 Sep 2016)
6034- CURLOPT_PINNEDPUBLICKEY.3: fix the AVAILABILITY formatting
6035
6036Nick Zitzmann (18 Sep 2016)
6037- darwinssl: disable RC4 cipher-suite support
6038
6039 RC4 was a nice alternative to CBC back in the days of BEAST, but it's insecure and obsolete now.
6040
6041- configure: change "iOS/Mac OS X native" to "Apple OS native"
6042
6043 Since I first wrote that text, Apple introduced tvOS and watchOS, and renamed "Mac OS X" to "macOS." Let's make the text a little more inclusive, since curl can be built for all four operating systems.
6044
6045Jay Satiro (18 Sep 2016)
6046- test2048: fix url
6047
6048- examples/imap-append: Set size of data to be uploaded
6049
6050 Prior to this commit this example failed with error
6051 'Cannot APPEND with unknown input file size'.
6052
6053 Bug: https://github.com/curl/curl/issues/1008
6054 Reported-by: lukaszgn@users.noreply.github.com
6055
6056 Closes https://github.com/curl/curl/pull/1011
6057
6058Daniel Stenberg (16 Sep 2016)
6059- [Tony Kelman brought this change]
6060
6061 LICENSE-MIXING.md: update with mbedTLS dual licensing
6062
6063 Recent versions of mbedTLS are available under either Apache 2.0 or GPL
6064 2.0, see https://tls.mbed.org/how-to-get
6065
6066 Closes #1019
6067
6068- KNOWN_BUGS: chunked-encoded requests with HTTP/2 is fixed
6069
6070- http2: debug ouput sent HTTP/2 request headers
6071
6072- http: accept "Transfer-Encoding: chunked" for HTTP/2 as well
6073
6074 ... but don't send the actual header over the wire as it isn't accepted.
6075 Chunked uploading is still triggered using this method.
6076
6077 Fixes #1013
6078 Fixes #662
6079
6080- openssl: fix per-thread memory leak usiong 1.0.1 or 1.0.2
6081
6082 OpenSSL 1.0.1 and 1.0.2 build an error queue that is stored per-thread
6083 so we need to clean it when easy handles are freed, in case the thread
6084 will be killed in which the easy handle was used. All OpenSSL code in
6085 libcurl should extract the error in association with the error already
6086 so clearing this queue here should be harmless at worst.
6087
6088 Fixes #964
6089
6090- RELEASE-NOTES: reset and go toward 7.51.0 (again)
6091
6092Version 7.50.3 (14 Sep 2016)
6093
6094Daniel Stenberg (14 Sep 2016)
6095- THANKS: updated with curl 7.50.3 contributors
6096
6097- RELEASE-NOTES: curl 7.50.3
6098
6099- test1605: verify negative input lengths to (un)escape functions
6100
6101- curl_easy_unescape: deny negative string lengths as input
6102
6103 CVE-2016-7167
6104
6105 Bug: https://curl.haxx.se/docs/adv_20160914.html
6106
6107- curl_easy_escape: deny negative string lengths as input
6108
6109 CVE-2016-7167
6110
6111 Bug: https://curl.haxx.se/docs/adv_20160914.html
6112
6113- curl: make --create-dirs on windows grok both forward and backward slashes
6114
6115 Reported-by: Ryan Scott
6116
6117 Fixes #1007
6118
6119- RELEASE-NOTES: synced with 665694979b6
6120
6121- [Tony Kelman brought this change]
6122
6123 mbedtls: switch off NTLM in build if md4 isn't available
6124
6125 NTLM support with mbedTLS was added in 497e7c9 but requires that mbedTLS
6126 is built with the MD4 functions available, which it isn't in default
6127 builds. This now adapts if the funtion isn't there and builds libcurl
6128 without NTLM support if so.
6129
6130 Fixes #1004
6131
6132Jay Satiro (12 Sep 2016)
6133- CODE_STYLE: fix long-line guideline
6134
6135 - Change maximum allowed line length from 80 to 79.
6136
6137- CODE_STYLE: add column alignment section
6138
6139 Note that since the added examples are for column alignment I had to
6140 encapsulate with ~~~c markdown to preserve their alignment.
6141
6142Peter Wu (11 Sep 2016)
6143- cmake: fix curl-config --static-libs
6144
6145 The `curl-config --static-libs` command should not output paths like
6146 -l/usr/lib/libssl.so, instead print the absolute path without `-l`.
6147
6148 This also removes the confusing message "Static linking is broken" which
6149 was printed because curl-config --static-libs was disfunctional even
6150 though the static libcurl.a library works properly.
6151
6152 Fixes https://github.com/curl/curl/issues/841
6153
6154Daniel Stenberg (11 Sep 2016)
6155- http: refuse to pass on response body with NO_NODY was set
6156
6157 ... like when a HTTP/0.9 response comes back without any headers at all
6158 and just a body this now prevents that body from being sent to the
6159 callback etc.
6160
6161 Adapted test 1144 to verify.
6162
6163 Fixes #973
6164
6165 Assisted-by: Ray Satiro
6166
6167- RELEASE-NOTES: synced with 257bf3ac67eb6
6168
6169Jakub Zakrzewski (10 Sep 2016)
6170- CMake: Don't build unit tests if private symbols are hidden
6171
6172 This only excludes building unit tests from default build ( 'all' Make
6173 target or "Build Solution" in VisualStudio). The projects and Make
6174 targets will still be generated and shown in supporting IDEs.
6175
6176 Fixes https://github.com/curl/curl/issues/981
6177 Reported-by: Randy Armstrong
6178
6179 Closes https://github.com/curl/curl/pull/990
6180
6181- CMake: Try to (un-)hide private library symbols
6182
6183 Detect support for compiler symbol visibility flags and apply those
6184 according to CURL_HIDDEN_SYMBOLS option.
6185 It should work true to the autotools build except it tries to unhide
6186 symbols on Windows when requested and prints warning if it fails.
6187
6188 Ref: https://github.com/curl/curl/issues/981#issuecomment-242665951
6189 Reported-by: Daniel Stenberg
6190
6191Daniel Stenberg (9 Sep 2016)
6192- openssl: fix bad memory free (regression)
6193
6194 ... by partially reverting f975f06033b1. The allocation could be made by
6195 OpenSSL so the free must be made with OPENSSL_free() to avoid problems.
6196
6197 Reported-by: Harold Stuart
6198 Fixes #1005
6199
6200- http2: support > 64bit sized uploads
6201
6202 ... by making sure we don't count down the "upload left" counter when the
6203 uploaded size is unknown and then it can be allowed to continue forever.
6204
6205 Fixes #996
6206
6207Jay Satiro (7 Sep 2016)
6208- errors: new alias CURLE_WEIRD_SERVER_REPLY (8)
6209
6210 Since we're using CURLE_FTP_WEIRD_SERVER_REPLY in imap, pop3 and smtp as
6211 more of a generic "failed to parse" introduce an alias without FTP in
6212 the name.
6213
6214 Closes https://github.com/curl/curl/pull/975
6215
6216Daniel Stenberg (7 Sep 2016)
6217- bump: toward 7.51.0
6218
6219- HISTORY: remove ascii logo to render nicer on web
6220
6221- curl: whitelist use of strtok() in non-threaded context
6222
6223- checksrc: detect strtok() use
6224
6225 ... as that function slipped through once before.
6226
6227GitHub (7 Sep 2016)
6228- [Viktor Szakats brought this change]
6229
6230 mk-ca-bundle.pl: use SHA256 instead of SHA1
6231
6232 This hash is used to verify the original downloaded certificate bundle
6233 and also included in the generated bundle's comment header. Also
6234 rename related internal symbols to algorithm-agnostic names.
6235
6236Version 7.50.2 (7 Sep 2016)
6237
6238Daniel Stenberg (7 Sep 2016)
6239- RELEASE-NOTES: curl 7.50.2 release
6240
6241- THANKS: updated for 7.50.2
6242
6243Jay Satiro (6 Sep 2016)
6244- [Gaurav Malhotra brought this change]
6245
6246 openssl: fix CURLINFO_SSL_VERIFYRESULT
6247
6248 CURLINFO_SSL_VERIFYRESULT does not get the certificate verification
6249 result when SSL_connect fails because of a certificate verification
6250 error.
6251
6252 This fix saves the result of SSL_get_verify_result so that it is
6253 returned by CURLINFO_SSL_VERIFYRESULT.
6254
6255 Closes https://github.com/curl/curl/pull/995
6256
6257Daniel Stenberg (6 Sep 2016)
6258- [Daniel Gustafsson brought this change]
6259
6260 darwinssl: test for errSecSuccess in PKCS12 import rather than noErr (#993)
6261
6262 While noErr and errSecSuccess are defined as the same value, the API
6263 documentation states that SecPKCS12Import() returns errSecSuccess if
6264 there were no errors in importing. Ensure that a future change of the
6265 defined value doesn't break (however unlikely) and be consistent with
6266 the API docs.
6267
6268- [Daniel Gustafsson brought this change]
6269
6270 docs: Fix link to CONTRIBUTE in Github contribution guidelines (#994)
6271
6272- [Marcel Raad brought this change]
6273
6274 openssl: Fix compilation with OPENSSL_API_COMPAT=0x10100000L
6275
6276 With OPENSSL_API_COMPAT=0x10100000L (OpenSSL 1.1 API), the cleanup
6277 functions are unavailable (they're no-ops anyway in OpenSSL 1.1). The
6278 replacements for SSL_load_error_strings, SSLeay_add_ssl_algorithms, and
6279 OpenSSL_add_all_algorithms are called automatically [1][2]. SSLeay() is
6280 now called OpenSSL_version_num().
6281
6282 [1]: https://www.openssl.org/docs/man1.1.0/ssl/OPENSSL_init_ssl.html
6283 [2]: https://www.openssl.org/docs/man1.1.0/crypto/OPENSSL_init_crypto.html
6284
6285 Closes #992
6286
6287- RELEASE-NOTES: synced with 3d4c0c8b9bc1d
6288
6289- http2: return EOF when done uploading without known size
6290
6291 Fixes #982
6292
6293- http2: skip the content-length parsing, detect unknown size
6294
6295- http2: minor white space edit