OpenSSL memory leak without call to SSL_COMP_free_compression_methods #817

jveazey opened this Issue May 18, 2016 · 11 comments


None yet

4 participants

jveazey commented May 18, 2016

I did this


/* Memory leak detecting */
#include <stdlib.h>
#include <crtdbg.h>
#define WIN32_LEAN_AND_MEAN 
#include <Windows.h>
#include <tchar.h>
#include <curl/curl.h>
#pragma comment(lib, "libcurl_a.lib")

int _tmain(int argc, _TCHAR* argv[])
    _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR );
    _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR );

    CURLcode output = curl_global_init(CURL_GLOBAL_ALL);

    _CrtDumpMemoryLeaks( );

    return 0;


It displayed the following


Detected memory leaks!
Dumping objects ->
{2966} normal block at 0x02499DF8, 16 bytes long.
 Data: <                > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
{2965} normal block at 0x024988F0, 20 bytes long.
 Data: <      I         > 00 00 00 00 F8 9D 49 02 01 00 00 00 04 00 00 00 
Object dump complete.


Possible fix

Calling SSL_COMP_free_compression_methods(); after curl_global_cleanup(); appears to fix the problem.

See also #2561: Memory leak with SSL built-in compressions

curl/libcurl version

curl 7.48.0 (i386-pc-win32) libcurl/7.48.0 OpenSSL/1.0.2h zlib/1.2.8 WinIDN
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz

operating system

Windows 10

bagder commented May 19, 2016

So when built and used normally there is no leak.

You rebuild OpenSSL and run it again and now it leaks. Isn't that an OpenSSL problem? Isn't that an ABI break that it doesn't behave the same way?

jveazey commented May 19, 2016 edited

By default, OPENSSL_NO_COMP is not defined. At least, when using nt.mak and ntdll.mak

Edit: The only thing I've changed in the default VC++ build process is the runtime library

bagder commented May 19, 2016

Oh, are you saying you have a memory leak with a default build of OpenSSL? I don't, on Linux at least.

jveazey commented May 19, 2016 edited

That's correct. Sorry for the confusion. I included OPENSSL_NO_COMP in the title because is directly related to the problem. Sensibly, it should be defined in the default build process, but I avoid modifying that build process as much as possible.

To give you some details on what is happening. I am wrapping cURL in a COM library (staticly linked to cURL and OpenSSL) that can be loaded/unloaded as needed. I'm not entirely sure how COM isolates the memory, but I know that every time the library loads it allocates new memory within the process. That's why we can't just load curl_global_init(CURL_GLOBAL_ALL) at the beginning of the process. It can't reference the "shared" memory from its previous loading.

Anyway, during a stress test, I found that the library was leaking an 36 bytes every time it was loaded/unloaded which added up after a few hours. That lead to the code sample in the original post.

jay commented May 20, 2016

Confirmed with Windows 7 x64 Enterprise w/curl from master (53ae370 2016-05-20) and OpenSSL/1.0.2h default config. I guess it is documented somewhere in openssl that we're supposed to call that function on cleanup? This is the first time I've heard of it.

curl 7.49.0-DEV (i386-pc-win32) libcurl/7.49.0-DEV OpenSSL/1.0.2h
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS Debug Largefile NTLM SSL

I am wrapping cURL in a COM library (staticly linked to cURL and OpenSSL) that can be loaded/unloaded as needed. I'm not entirely sure how COM isolates the memory, but I know that every time the library loads it allocates new memory within the process. That's why we can't just load curl_global_init(CURL_GLOBAL_ALL) at the beginning of the process. It can't reference the "shared" memory from its previous loading.

Initializing libcurl from a DLL is tricky. curl_global_init and curl_global_cleanup are not thread safe and may call the initialization and cleanup routines of other libraries that are not thread safe. It's documented to not call init when any other threads are running. Also read this tldr. Also you must follow thread safety requirements.

bagder commented May 20, 2016

It's a horrible mess.

The SSL_COMP_free_compression_methods function was added in OpenSSL in 2014: openssl/openssl@db7b5e0 (unknown to me just now which versions that have it)

Docs added over a year later in 2015: openssl/openssl@c490a55

In April 2016, the function is marked deprecated and a no-op: openssl/openssl@03b0e73 (I assume this is the 1.1.0 branch)

So, there's a version gap in there during which it can/should be used...

jveazey commented May 20, 2016

Initializing libcurl from a DLL is tricky.

I'm still doing testing on it and it won't be something that I'll push into production lightly. The whole reason this came up is that OpenSSL is already loaded in memory. The library wasn't able to reference that shared memory. cURL always reported SSL errors. I switched to using CURL_GLOBAL_ALL and it resolved the problem. The other parts of the code that use OpenSSL - even after the library has been loaded/unloaded thousands of times - appear to be unaffected (so far).

It's a horrible mess.

Agreed. Plus, the updated documentation for 1.1.0 states that everything will be handled automagically, but given my predicament, I'll have to force cleanup one way or another.

As of version 1.1.0 OpenSSL will automatically allocate all resources that it needs so no explicit initialisation is required. Similarly it will also automatically deinitialise as required.

Given the state of things, you should probably change this to a "will not fix". I just want there to be a clear record of it, one way or another.

@bagder bagder changed the title from Memory leak when OpenSSL is compiled without OPENSSL_NO_COMP defined to OpenSSL memory leak without call to SSL_COMP_free_compression_methods May 20, 2016
@jay jay added a commit that referenced this issue May 20, 2016
@jay jay openssl: cleanup must free compression methods
- Free compression methods if OpenSSL 1.0.2 to avoid a memory leak.

Bug: #817
jay commented May 20, 2016

I'm still doing testing on it and it won't be something that I'll push into production lightly. The whole reason this came up is that OpenSSL is already loaded in memory. The library wasn't able to reference that shared memory. cURL always reported SSL errors. I switched to using CURL_GLOBAL_ALL and it resolved the problem. The other parts of the code that use OpenSSL - even after the library has been loaded/unloaded thousands of times - appear to be unaffected (so far).

If you have a static OpenSSL library in your DLL you should be OK as long as you control the code and know what is going on. The problems come in when there are OpenSSL DLLs (or shared objects in the case of Linux) that are used by the application or another library loaded by the application (ie not your library) and do their own openssl initialization or thread hook routines (usurping yours). In some cases if it's proven that it's guaranteed to be already initialized properly by other means I've advised to not call with global_all (in other words do CURL_GLOBAL_ALL & ~CURL_GLOBAL_SSL), because you don't want to init SSL and set it up if it's already initialized and working and must continue after you call curl_global_cleanup.
Now that said in your case because you have static OpenSSL that is available in your DLL that static OpenSSL can't be used by other parts of your program (except through some function publicly exposed in your DLL of course). So you must initialize your static openssl and deinit. Also side note, I think there were some problems on windows with static openssl if you use the static crt, and they recommended at one point dynamic crt only (ie dll), not sure if that still applies.
Another thing, a bit more advanced - if you didn't want static openssl and instead wanted the openssl dlls because they are easier to update when modular, and wanted to avoid such conflicts, you could change the name of the DLLs like ssleay32_for_mylib.dll for build or modify the .lib to change the name of the dll (I don't remember how to do this but it's possible) then put that changed name in the .lib so that the lib links to that DLL name when your DLL searches for the __imp functions. In other words your DLL can have its own OpenSSL DLLs. In 1.1.0 from what I've read I don't think any of that would be necessary as long as it's built with threading support.

Given the state of things, you should probably change this to a "will not fix". I just want there to be a clear record of it, one way or another.

We support and will continue to support 1.0.2 so I've put in a fix. Thanks, landed in 3caaeff.

@jay jay closed this May 20, 2016
arekm commented Jul 6, 2016 edited

This change is causing segfault of php when curl module is loaded. Reverting commit 3caaeff and problem is gone.

Tested on php5.3.29 and 5.5.36. openssl 1.0.2h

 php -r ''
*** Error in `php': double free or corruption (out): 0x00000000010927a0 ***
======= Backtrace: =========
======= Memory map: ========
00400000-00413000 r-xp 00000000 08:01 134970884                          /usr/bin/php55
00613000-00615000 rw-p 00013000 08:01 134970884                          /usr/bin/php55
00eb3000-0133c000 rw-p 00000000 00:00 0                                  [heap]
7f95d0000000-7f95d0021000 rw-p 00000000 00:00 0 
7f95d0021000-7f95d4000000 ---p 00000000 00:00 0 
7f95d7cec000-7f95d7d12000 r-xp 00000000 08:01 134970886                  /usr/lib64/php55/
7f95d7d12000-7f95d7f12000 ---p 00026000 08:01 134970886                  /usr/lib64/php55/
7f95d7f12000-7f95d7f14000 r--p 00026000 08:01 134970886                  /usr/lib64/php55/
7f95d7f14000-7f95d7f15000 rw-p 00028000 08:01 134970886                  /usr/lib64/php55/
7f95d87ca000-7f95d88d8000 r-xp 00000000 08:01 271091978                  /usr/lib64/
7f95d88d8000-7f95d8ad7000 ---p 0010e000 08:01 271091978                  /usr/lib64/
7f95d8ad7000-7f95d8ad8000 r--p 0010d000 08:01 271091978                  /usr/lib64/
7f95d8ad8000-7f95d8ad9000 rw-p 0010e000 08:01 271091978                  /usr/lib64/
7f95d8ad9000-7f95d8ada000 rw-p 00000000 00:00 0 
7f95db448000-7f95db461000 r-xp 00000000 08:01 402740831                  /lib64/
7f95db461000-7f95db660000 ---p 00019000 08:01 402740831                  /lib64/
7f95db660000-7f95db661000 r--p 00018000 08:01 402740831                  /lib64/
7f95db661000-7f95db662000 rw-p 00019000 08:01 402740831                  /lib64/
7f95db662000-7f95db66c000 rw-p 00000000 00:00 0 
7f95db66c000-7f95db67a000 r-xp 00000000 08:01 402813014                  /lib64/
7f95db67a000-7f95db879000 ---p 0000e000 08:01 402813014                  /lib64/
7f95db879000-7f95db87a000 r--p 0000d000 08:01 402813014                  /lib64/
7f95db87a000-7f95db87b000 rw-p 0000e000 08:01 402813014                  /lib64/
7f95db87b000-7f95db949000 r-xp 00000000 08:01 402697172                  /lib64/
7f95db949000-7f95dbb49000 ---p 000ce000 08:01 402697172                  /lib64/
7f95dbb49000-7f95dbb4b000 r--p 000ce000 08:01 402697172                  /lib64/
7f95dbb4b000-7f95dbb4e000 rw-p 000d0000 08:01 402697172                  /lib64/
7f95dbb4e000-7f95dbb76000 r-xp 00000000 08:01 402655106                  /lib64/
7f95dbb76000-7f95dbd75000 ---p 00028000 08:01 402655106                  /lib64/
7f95dbd75000-7f95dbd76000 r--p 00027000 08:01 402655106                  /lib64/
7f95dbd76000-7f95dbd77000 rw-p 00028000 08:01 402655106                  /lib64/
7f95dbd77000-7f95dbdbc000 r-xp 00000000 08:01 402655102                  /lib64/
7f95dbdbc000-7f95dbfbc000 ---p 00045000 08:01 402655102                  /lib64/
7f95dbfbc000-7f95dbfbf000 r--p 00045000 08:01 402655102                  /lib64/
7f95dbfbf000-7f95dbfc1000 rw-p 00048000 08:01 402655102                  /lib64/
7f95dbfc1000-7f95dbfc2000 rw-p 00000000 00:00 0 
7f95dbfc2000-7f95dd83e000 r--p 00000000 08:01 270490253                  /usr/lib64/
7f95dd83e000-7f95dda3d000 ---p 0187c000 08:01 270490253                  /usr/lib64/
7f95dda3d000-7f95dda3e000 r--p 0187b000 08:01 270490253                  /usr/lib64/
7f95dda3e000-7f95dda5a000 r-xp 00000000 08:01 268870900                  /usr/lib64/
7f95dda5a000-7f95ddc5a000 ---p 0001c000 08:01 268870900                  /usr/lib64/
7f95ddc5a000-7f95ddc5b000 rw-p 0001c000 08:01 268870900                  /usr/lib64/
7f95ddc5b000-7f95ddc6f000 r-xp 00000000 08:01 402655105                  /lib64/
7f95ddc6f000-7f95dde6e000 ---p 00014000 08:01 402655105                  /lib64/
7f95dde6e000-7f95dde6f000 r--p 00013000 08:01 402655105                  /lib64/
7f95dde6f000-7f95dde70000 rw-p 00014000 08:01 402655105                  /lib64/
7f95dde70000-7f95dde73000 r-xp 00000000 08:01 402740830                  /lib64/
7f95dde73000-7f95de072000 ---p 00003000 08:01 402740830                  /lib64/
7f95de072000-7f95de073000 r--p 00002000 08:01 402740830                  /lib64/
7f95de073000-7f95de074000 rw-p 00003000 08:01 402740830                  /lib64/
7f95de074000-7f95de111000 r-xp 00000000 08:01 402655097                  /lib64/
7f95de111000-7f95de310000 ---p 0009d000 08:01 402655097                  /lib64/
7f95de310000-7f95de312000 r--p 0009c000 08:01 402655097                  /lib64/
7f95de312000-7f95de316000 rw-p 0009e000 08:01 402655097                  /lib64/
7f95de316000-7f95de348000 r-xp 00000000 08:01 402655099                  /lib64/
7f95de348000-7f95de547000 ---p 00032000 08:01 402655099                  /lib64/
7f95de547000-7f95de549000 r--p 00031000 08:01 402655099                  /lib64/
7f95de549000-7f95de54a000 rw-p 00033000 08:01 402655099                  /lib64/
7f95de54a000-7f95de54b000 rw-p 00000000 00:00 0 
7f95de54b000-7f95de54e000 r-xp 00000000 08:01 402655100                  /lib64/
7f95de54e000-7f95de74e000 ---p 00003000 08:01 402655100                  /lib64/
7f95de74e000-7f95de74f000 r--p 00003000 08:01 402655100                  /lib64/
7f95de74f000-7f95de750000 rw-p 00004000 08:01 402655100                  /lib64/
7f95de750000-7f95de7cb000 r-xp 00000000 08:01 402655104                  /lib64/
7f95de7cb000-7f95de9ca000 ---p 0007b000 08:01 402655104                  /lib64/
7f95de9ca000-7f95de9cd000 r--p 0007a000 08:01 402655104                  /lib64/
7f95de9cd000-7f95de9d1000 rw-p 0007d000 08:01 402655104                  /lib64/
7f95de9d1000-7f95de9d7000 r-xp 00000000 08:01 402655101                  /lib64/
7f95de9d7000-7f95debd6000 ---p 00006000 08:01 402655101                  /lib64/
7f95debd6000-7f95debd7000 r--p 00005000 08:01 402655101                  /lib64/
7f95debd7000-7f95debd8000 rw-p 00006000 08:01 402655101                  /lib64/
7f95debd8000-7f95ded6c000 r-xp 00000000 08:01 270490260                  /usr/lib64/
7f95ded6c000-7f95def6c000 ---p 00194000 08:01 270490260                  /usr/lib64/
7f95def6c000-7f95def7e000 r--p 00194000 08:01 270490260                  /usr/lib64/
7f95def7e000-7f95def7f000 rw-p 001a6000 08:01 270490260                  /usr/lib64/
7f95def7f000-7f95def81000 rw-p 00000000 00:00 0 
7f95def81000-7f95df1b0000 r-xp 00000000 08:01 402796622                  /lib64/
7f95df1b0000-7f95df3b0000 ---p 0022f000 08:01 402796622                  /lib64/
7f95df3b0000-7f95df3d7000 rw-p 0022f000 08:01 402796622                  /lib64/
7f95df3d7000-7f95df3db000 rw-p 00000000 00:00 0 
7f95df3db000-7f95df446000 r-xp 00000000 08:01 402796623                  /lib64/
7f95df446000-7f95df645000 ---p 0006b000 08:01 402796623                  /lib64/
7f95df645000-7f95df650000 rw-p 0006a000 08:01 402796623                  /lib64/
7f95df650000-7f95df65e000 r-xp 00000000 08:01 268871088                  /usr/lib64/
7f95df65e000-7f95df85d000 ---p 0000e000 08:01 268871088                  /usr/lib64/
7f95df85d000-7f95df85e000 r--p 0000d000 08:01 268871088                  /usr/lib64/
7f95df85e000-7f95df85f000 rw-p 0000e000 08:01 268871088                  /usr/lib64/
7f95df85f000-7f95df8a8000 r-xp 00000000 08:01 268871089                  /usr/lib64/
7f95df8a8000-7f95dfaa8000 ---p 00049000 08:01 268871089                  /usr/lib64/
7f95dfaa8000-7f95dfaa9000 r--p 00049000 08:01 268871089                  /usr/lib64/
7f95dfaa9000-7f95dfaab000 rw-p 0004a000 08:01 268871089                  /usr/lib64/
7f95dfaab000-7f95dfae6000 r-xp 00000000 08:01 402655098                  /lib64/
7f95dfae6000-7f95dfce6000 ---p 0003b000 08:01 402655098                  /lib64/
7f95dfce6000-7f95dfce7000 r--p 0003b000 08:01 402655098                  /lib64/
7f95dfce7000-7f95dfcea000 rw-p 0003c000 08:01 402655098                  /lib64/
7f95dfcea000-7f95dfcf5000 r-xp 00000000 08:01 269457701                  /usr/lib64/
7f95dfcf5000-7f95dfef5000 ---p 0000b000 08:01 269457701                  /usr/lib64/
7f95dfef5000-7f95dfef6000 r--p 0000b000 08:01 269457701                  /usr/lib64/
7f95dfef6000-7f95dfef7000 rw-p 0000c000 08:01 269457701                  /usr/lib64/
7f95dfef7000-7f95dff23000 r-xp 00000000 08:01 268827993                  /usr/lib64/
7f95dff23000-7f95e0123000 ---p 0002c000 08:01 268827993                  /usr/lib64/
7f95e0123000-7f95e0124000 r--p 0002c000 08:01 268827993                  /usr/lib64/
7f95e0124000-7f95e0125000 rw-p 0002d000 08:01 268827993                  /usr/lib64/
7f95e0125000-7f95e013c000 r-xp 00000000 08:01 270314764                  /usr/lib64/
7f95e013c000-7f95e033c000 ---p 00017000 08:01 270314764                  /usr/lib64/
7f95e033c000-7f95e033d000 r--p 00017000 08:01 270314764                  /usr/lib64/
7f95e033d000-7f95e033e000 rw-p 00018000 08:01 270314764                  /usr/lib64/
7f95e033e000-7f95e0370000 r-xp 00000000 08:01 268692046                  /usr/lib64/
7f95e0370000-7f95e0570000 ---p 00032000 08:01 268692046                  /usr/lib64/
7f95e0570000-7f95e0571000 r--p 00032000 08:01 268692046                  /usr/lib64/
7f95e0571000-7f95e0572000 rw-p 00033000 08:01 268692046                  /usr/lib64/
7f95e0572000-7f95e0595000 r-xp 00000000 08:01 268871041                  /usr/lib64/
7f95e0595000-7f95e0794000 ---p 00023000 08:01 268871041                  /usr/lib64/
7f95e0794000-7f95e0795000 r--p 00022000 08:01 268871041                  /usr/lib64/
7f95e0795000-7f95e0798000 rw-p 00023000 08:01 268871041                  /usr/lib64/
7f95e0798000-7f95e07a9000 r-xp 00000000 08:01 270314766                  /usr/lib64/
7f95e07a9000-7f95e09a8000 ---p 00011000 08:01 270314766                  /usr/lib64/
7f95e09a8000-7f95e09a9000 r--p 00010000 08:01 270314766                  /usr/lib64/
7f95e09a9000-7f95e09aa000 rw-p 00011000 08:01 270314766                  /usr/lib64/
7f95e09aa000-7f95e0a23000 r-xp 00000000 08:01 269659441                  /usr/lib64/
7f95e0a23000-7f95e0c23000 ---p 00079000 08:01 269659441                  /usr/lib64/
7f95e0c23000-7f95e0c25000 r--p 00079000 08:01 269659441                  /usr/lib64/
7f95e0c25000-7f95e0c27000 rw-p 0007b000 08:01 269659441                  /usr/lib64/
7f95e0c27000-7f95e0c3b000 r-xp 00000000 08:01 135987657                  /usr/lib64/php55/
7f95e0c3b000-7f95e0e3a000 ---p 00014000 08:01 135987657                  /usr/lib64/php55/
7f95e0e3a000-7f95e0e3c000 r--p 00013000 08:01 135987657                  /usr/lib64/php55/
7f95e0e3c000-7f95e0e3d000 rw-p 00015000 08:01 135987657                  /usr/lib64/php55/
7f95e0e3d000-7f95e0e40000 r-xp 00000000 08:01 135414442                  /usr/lib64/php55/
7f95e0e40000-7f95e103f000 ---p 00003000 08:01 135414442                  /usr/lib64/php55/
7f95e103f000-7f95e1040000 r--p 00002000 08:01 135414442                  /usr/lib64/php55/
7f95e1040000-7f95e1041000 rw-p 00003000 08:01 135414442                  /usr/lib64/php55/
7f95e1041000-7f95e1048000 r-xp 00000000 08:01 135987652                  /usr/lib64/php55/
7f95e1048000-7f95e1248000 ---p 00007000 08:01 135987652                  /usr/lib64/php55/
7f95e1248000-7f95e1249000 r--p 00007000 08:01 135987652                  /usr/lib64/php55/
7f95e1249000-7f95e124a000 rw-p 00008000 08:01 135987652                  /usr/lib64/php55/
7f95e124a000-7f95e1259000 r-xp 00000000 08:01 402654274                  /lib64/
7f95e1259000-7f95e1458000 ---p 0000f000 08:01 402654274                  /lib64/
7f95e1458000-7f95e145a000 r--p 0000e000 08:01 402654274                  /lib64/
7f95e145a000-7f95e145b000 rw-p 00010000 08:01 402654274                  /lib64/
7f95e145b000-7f95e1460000 r-xp 00000000 08:01 135959240                  /usr/lib64/php55/
7f95e1460000-7f95e165f000 ---p 00005000 08:01 135959240                  /usr/lib64/php55/
7f95e165f000-7f95e1660000 r--p 00004000 08:01 135959240                  /usr/lib64/php55/
7f95e1660000-7f95e1661000 rw-p 00005000 08:01 135959240                  /usr/lib64/php55/
7f95e1661000-7f95e1669000 r-xp 00000000 08:01 135414438                  /usr/lib64/php55/
7f95e1669000-7f95e1868000 ---p 00008000 08:01 135414438                  /usr/lib64/php55/
7f95e1868000-7f95e1869000 r--p 00007000 08:01 135414438                  /usr/lib64/php55/
7f95e1869000-7f95e186a000 rw-p 00008000 08:01 135414438                  /usr/lib64/php55/
7f95e186a000-7f95e187c000 r-xp 00000000 08:01 135414462                  /usr/lib64/php55/
7f95e187c000-7f95e1a7c000 ---p 00012000 08:01 135414462                  /usr/lib64/php55/
7f95e1a7c000-7f95e1a7e000 r--p 00012000 08:01 135414462                  /usr/lib64/php55/
7f95e1a7e000-7f95e1a7f000 rw-p 00014000 08:01 135414462                  /usr/lib64/php55/
7f95e1a7f000-7f95e1ac3000 r-xp 00000000 08:01 135824148                  /usr/lib64/php55/
7f95e1ac3000-7f95e1cc3000 ---p 00044000 08:01 135824148                  /usr/lib64/php55/
7f95e1cc3000-7f95e1cc9000 r--p 00044000 08:01 135824148                  /usr/lib64/php55/
7f95e1cc9000-7f95e1cca000 rw-p 0004a000 08:01 135824148                  /usr/lib64/php55/
7f95e1cca000-7f95e1ccb000 rw-p 00000000 00:00 0 
7f95e1ccb000-7f95e1cd3000 r-xp 00000000 08:01 135832895                  /usr/lib64/php55/
7f95e1cd3000-7f95e1ed3000 ---p 00008000 08:01 135832895                  /usr/lib64/php55/
7f95e1ed3000-7f95e1ed4000 r--p 00008000 08:01 135832895                  /usr/lib64/php55/
7f95e1ed4000-7f95e1ed5000 rw-p 00009000 08:01 135832895                  /usr/lib64/php55/
7f95e1ed5000-7f95e2029000 r-xp 00000000 08:01 135824167                  /usr/lib64/php55/
7f95e2029000-7f95e2128000 ---p 00154000 08:01 135824167                  /usr/lib64/php55/
7f95e2128000-7f95e2136000 rw-p 00153000 08:01 135824167                  /usr/lib64/php55/
7f95e2136000-7f95e2139000 rw-p 00000000 00:00 0 
7f95e2139000-7f95e214f000 r-xp 00000000 08:01 402996279                  /lib64/
7f95e214f000-7f95e234e000 ---p 00016000 08:01 402996279                  /lib64/
7f95e234e000-7f95e234f000 rw-p 00015000 08:01 402996279                  /lib64/
7f95e234f000-7f95e2351000 r-xp 00000000 08:01 402654283                  /lib64/
7f95e2351000-7f95e2550000 ---p 00002000 08:01 402654283                  /lib64/
7f95e2550000-7f95e2551000 rw-p 00001000 08:01 402654283                  /lib64/
7f95e2551000-7f95e26ec000 r-xp 00000000 08:01 402653732                  /lib64/
7f95e26ec000-7f95e28eb000 ---p 0019b000 08:01 402653732                  /lib64/
7f95e28eb000-7f95e28ef000 r--p 0019a000 08:01 402653732                  /lib64/
7f95e28ef000-7f95e28f1000 rw-p 0019e000 08:01 402653732                  /lib64/
7f95e28f1000-7f95e28f5000 rw-p 00000000 00:00 0 
7f95e28f5000-7f95e290d000 r-xp 00000000 08:01 403589169                  /lib64/
7f95e290d000-7f95e2b0c000 ---p 00018000 08:01 403589169                  /lib64/
7f95e2b0c000-7f95e2b0d000 r--p 00017000 08:01 403589169                  /lib64/
7f95e2b0d000-7f95e2b0e000 rw-p 00018000 08:01 403589169                  /lib64/
7f95e2b0e000-7f95e2b12000 rw-p 00000000 00:00 0 
7f95e2b12000-7f95e2b7a000 r-xp 00000000 08:01 402694125                  /lib64/
7f95e2b7a000-7f95e2d7a000 ---p 00068000 08:01 402694125                  /lib64/
7f95e2d7a000-7f95e2d7e000 r--p 00068000 08:01 402694125                  /lib64/
7f95e2d7e000-7f95e2d80000 rw-p 0006c000 08:01 402694125                  /lib64/
7f95e2d80000-7f95e2dbf000 r-xp 00000000 08:01 402654438                  /lib64/
7f95e2dbf000-7f95e2fbf000 ---p 0003f000 08:01 402654438                  /lib64/
7f95e2fbf000-7f95e2fc2000 r--p 0003f000 08:01 402654438                  /lib64/
7f95e2fc2000-7f95e2fc9000 rw-p 00042000 08:01 402654438                  /lib64/
7f95e2fc9000-7f95e2fca000 rw-p 00000000 00:00 0 
7f95e2fca000-7f95e2fef000 r-xp 00000000 08:01 402654177                  /lib64/
7f95e2fef000-7f95e31ee000 ---p 00025000 08:01 402654177                  /lib64/
7f95e31ee000-7f95e31ef000 r--p 00024000 08:01 402654177                  /lib64/
7f95e31ef000-7f95e31f0000 rw-p 00025000 08:01 402654177                  /lib64/
7f95e31f0000-7f95e3205000 r-xp 00000000 08:01 402654020                  /lib64/
7f95e3205000-7f95e3404000 ---p 00015000 08:01 402654020                  /lib64/
7f95e3404000-7f95e3405000 rw-p 00014000 08:01 402654020                  /lib64/
7f95e3405000-7f95e3563000 r-xp 00000000 08:01 269457715                  /usr/lib64/
7f95e3563000-7f95e3763000 ---p 0015e000 08:01 269457715                  /usr/lib64/
7f95e3763000-7f95e376b000 r--p 0015e000 08:01 269457715                  /usr/lib64/
7f95e376b000-7f95e376d000 rw-p 00166000 08:01 269457715                  /usr/lib64/
7f95e376d000-7f95e376e000 rw-p 00000000 00:00 0 
7f95e376e000-7f95e3775000 r-xp 00000000 08:01 403589173                  /lib64/
7f95e3775000-7f95e3974000 ---p 00007000 08:01 403589173                  /lib64/
7f95e3974000-7f95e3975000 r--p 00006000 08:01 403589173                  /lib64/
7f95e3975000-7f95e3976000 rw-p 00007000 08:01 403589173                  /lib64/
7f95e3976000-7f95e3ae8000 r-xp 00000000 08:01 268687464                  /usr/lib64/
7f95e3ae8000-7f95e3ce8000 ---p 00172000 08:01 268687464                  /usr/lib64/
7f95e3ce8000-7f95e3cf2000 r--p 00172000 08:01 268687464                  /usr/lib64/
7f95e3cf2000-7f95e3cf4000 rw-p 0017c000 08:01 268687464                  /usr/lib64/
7f95e3cf4000-7f95e3cf8000 rw-p 00000000 00:00 0 
7f95e3cf8000-7f95e3d0c000 r-xp 00000000 08:01 403589171                  /lib64/
7f95e3d0c000-7f95e3f0c000 ---p 00014000 08:01 403589171                  /lib64/
7f95e3f0c000-7f95e3f0d000 r--p 00014000 08:01 403589171                  /lib64/
7f95e3f0d000-7f95e3f0e000 rw-p 00015000 08:01 403589171                  /lib64/
7f95e3f0e000-7f95e3f10000 rw-p 00000000 00:00 0
7f95e3f10000-7f95e3f81000 r-xp 00000000 08:01 403194900                  /lib64/
7f95e3f81000-7f95e4180000 ---p 00071000 08:01 403194900                  /lib64/
7f95e4180000-7f95e4181000 r--p 00070000 08:01 403194900                  /lib64/
7f95e4181000-7f95e4182000 rw-p 00071000 08:01 403194900                  /lib64/
7f95e4182000-7f95e4184000 r-xp 00000000 08:01 402653736                  /lib64/
7f95e4184000-7f95e4384000 ---p 00002000 08:01 402653736                  /lib64/
7f95e4384000-7f95e4385000 r--p 00002000 08:01 402653736                  /lib64/
7f95e4385000-7f95e4386000 rw-p 00003000 08:01 402653736                  /lib64/
7f95e4386000-7f95e448a000 r-xp 00000000 08:01 402653738                  /lib64/
7f95e448a000-7f95e4689000 ---p 00104000 08:01 402653738                  /lib64/
7f95e4689000-7f95e468a000 r--p 00103000 08:01 402653738                  /lib64/
7f95e468a000-7f95e468b000 rw-p 00104000 08:01 402653738                  /lib64/
7f95e468b000-7f95e4695000 r-xp 00000000 08:01 402653974                  /lib64/
7f95e4695000-7f95e4895000 ---p 0000a000 08:01 402653974                  /lib64/
7f95e4895000-7f95e4896000 r--p 0000a000 08:01 402653974                  /lib64/
7f95e4896000-7f95e4897000 rw-p 0000b000 08:01 402653974                  /lib64/
7f95e4897000-7f95e48c5000 rw-p 00000000 00:00 0
7f95e48c5000-7f95e4bdc000 r-xp 00000000 08:01 268646744                  /usr/lib64/
7f95e4bdc000-7f95e4ddc000 ---p 00317000 08:01 268646744                  /usr/lib64/
7f95e4ddc000-7f95e4e58000 rw-p 00317000 08:01 268646744                  /usr/lib64/
7f95e4e58000-7f95e4e71000 rw-p 00000000 00:00 0
7f95e4e71000-7f95e4e94000 r-xp 00000000 08:01 403589154                  /lib64/
7f95e4eaa000-7f95e4edf000 r--s 00000000 08:01 270489856                  /var/lib/nscd/services
7f95e4eef000-7f95e508b000 rw-p 00000000 00:00 0
7f95e5092000-7f95e5094000 rw-p 00000000 00:00 0
7f95e5094000-7f95e5095000 r--p 00023000 08:01 403589154                  /lib64/
7f95e5095000-7f95e5096000 rw-p 00024000 08:01 403589154                  /lib64/
7f95e5096000-7f95e5097000 rw-p 00000000 00:00 0
7ffe05cf1000-7ffe05d12000 rw-p 00000000 00:00 0                          [stack]
7ffe05df8000-7ffe05dfa000 r--p 00000000 00:00 0                          [vvar]
7ffe05dfa000-7ffe05dfc000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
@arekm arekm added a commit to pld-linux/curl that referenced this issue Jul 6, 2016
@arekm arekm - rel 3; revert additional SSL freeing since it will harm other opens…
…sl users; will see how upstream will solve this (curl/curl#817)
jay commented Jul 6, 2016

@arekm Start a new issue please. I reviewed OpenSSL 1.0.2h and I don't see that it calls SSL_COMP_free_compression_methods internally, therefore I still think what we are doing is correct. If you ask libcurl to initialize openssl then logically it follows when libcurl cleans up it's going to clean up openssl. It's possible something in PHP is calling that function or is calling curl global cleanup concurrently.

arekm commented Jul 6, 2016

@jay: My guess about the issue is like this: consider php which uses openssl internally, php-pgsql where libpgsql uses openssl internally, php-curl. All that three things used in one single 'php' binary. Now curl is being ended, does its cleanup and decides to free global data. Then php-openssl and php-libpgsql still try to do something openssl related where openssl needs that global data for that. Result -> crash. (but that's only my guess)

Opening new issue.

@MSF-Jarvis MSF-Jarvis pushed a commit to CAF-Mirror/platform_external_curl that referenced this issue Jan 3, 2017
@deymo deymo Update libcurl from 7.43 to 7.49.1
Bug: 29602883

Squashed commit of the following:

commit f3066c00398854c5c6ff5c81a02d1c0429ba42c7
Author: Daniel Stenberg <>
Date:   Fri May 27 16:58:43 2016 +0200

    RELEASE-NOTES: 7.49.1

commit 3b18f1567d23817736116b1d9aa3e6e5e5ed62f4
Author: Steve Holme <>
Date:   Sun May 29 22:57:40 2016 +0200

    loadlibrary: Only load system DLLs from the system directory

    Inspiration provided by: Daniel Stenberg and Ray Satiro


    Ref: Windows DLL hijacking with curl, CVE-2016-4802

commit 7f9d8d9e7452cc2a5c36fd2e94ee3b0b2844ab28
Author: Daniel Stenberg <>
Date:   Mon May 30 08:14:13 2016 +0200

    ssh: fix version number check typo

commit fef1924717aea8146036bac4b341e51b2e10628a
Author: Jay Satiro <>
Date:   Sun May 29 16:27:44 2016 -0400

    curl_share_setopt.3: Add min ver needed for ssl session lock

    Reported-by: Michael Wallner

commit bcd72a98405316a432cf4429d59e90c13275f7cc
Author: Daniel Stenberg <>
Date:   Sun May 29 00:20:14 2016 +0200

    ssh: fix build for libssh2 before 1.2.6

    The statvfs functionality was added to libssh2 in that version, so we
    switch off that functionality when built with older libraries.

    Fixes #831

commit 369291218fe75bdc6a8d6fc71ba94ffc1520f03a
Author: Daniel Stenberg <>
Date:   Tue May 24 12:14:18 2016 +0200

    mbedtls: fix includes so snprintf() works

    Regression from the previous *printf() rearrangements, this file missed to
    include the correct header to make sure snprintf() works universally.

    Reported-by: Moti Avrahami

commit 24b8cdcabb84447e4a8491953b873be032c715b0
Author: Steve Holme <>
Date:   Mon May 23 12:13:41 2016 +0100 Added variants of strcat() & strncat() to banned function list

    Added support for checking the tchar, unicode and mbcs variants of
    strcat() and strncat() in the banned function list.

commit 78d99b275946a0ba41dc5b8a44148988892f40e3
Author: Daniel Stenberg <>
Date:   Mon May 23 12:59:58 2016 +0200

    smtp: minor ident (white space) fixes

commit 962015081a2b173ae89d71fe574ae6a53d80722c
Author: Daniel Stenberg <>
Date:   Mon May 23 10:08:34 2016 +0200

    THANKS: updated after script fixes

    Now giving credit properly to github user names, fixed some UTF-8 issues
    and added names discovered when contrithanks was improved.

commit 581695693940ad81c3336844a2f88268a198366b
Author: Daniel Stenberg <>
Date:   Mon May 23 10:08:15 2016 +0200

    THANKS-filter: more name cleanups

commit 81ab42b9a6443ce4492c9f6f14cc84177b143922
Author: Daniel Stenberg <>
Date:   Mon May 23 10:07:48 2016 +0200 exclude existing names case insensitively

commit eb62c62aad1e11f318b69a9f66370d50fc986cb2
Author: Daniel Stenberg <>
Date:   Mon May 23 09:14:19 2016 +0200 use same grep pattern and -a flag as

commit 2d05f5d616940a1656cc9f5b50d9ba65c2fb158d
Author: Daniel Stenberg <>
Date:   Mon May 23 09:13:43 2016 +0200 better grep pattern, use grep -a

commit de8a6a6a4d4c8d4e178e1a8bb75c8ce59a0cccff
Author: Daniel Stenberg <>
Date:   Mon May 23 09:13:20 2016 +0200

    THANKS-filter: fix more names

commit 4cc626af3dfe15ef67d34781e0c2b3543e7c74d7
Author: Daniel Stenberg <>
Date:   Mon May 23 08:50:53 2016 +0200 do the same github fix as

    from 1577bfa35ba

commit 35d806245513c216863c371ca645a881213ff691
Author: Jay Satiro <>
Date:   Mon May 23 02:42:12 2016 -0400

    contributors: Show GitHub username if real name unknown

    Prior to this change if a GitHub contributor's real name was unknown
    they would be omitted from the list.


commit d1c6da6965a2ac89a410fb8cc182b92dfc370467
Author: Daniel Stenberg <>
Date:   Sat May 21 16:05:54 2016 +0200

    RELEASE-NOTES: synced with 3caaeffbe8ded4

commit 85b88c85fd739ab869de26c6bf62c169eaef846d
Author: Jay Satiro <>
Date:   Fri May 20 16:44:01 2016 -0400

    openssl: cleanup must free compression methods

    - Free compression methods if OpenSSL 1.0.2 to avoid a memory leak.


commit 8e4cca04059718825c99b6a6e05c9d98bc72c3ae
Author: Gisle Vanem <>
Date:   Fri May 20 16:50:04 2016 +0200

    curl_multibyte: fix compiler error

    While compiling lib/curl_multibyte.c with '-DUSE_WIN32_IDN' etc. I was

    f:\mingw32\src\inet\curl\lib\memdebug.h(38): error C2054: expected '('
    to follow 'CURL_EXTERN'

    f:\mingw32\src\inet\curl\lib\memdebug.h(38): error C2085:
    'curl_domalloc': not in formal parameter list

commit 70e55706b7ea2dc66589ecc9f01fec6d7e8d2117
Author: Daniel Stenberg <>
Date:   Fri May 20 16:44:34 2016 +0200

    THANKS-filter: make Jan-E get proper credit

commit 7cf41326f3c1d9872e3318ce9f74ba8f7e4e39e1
Author: Alexander Traud <>
Date:   Fri May 20 14:57:48 2016 +0200

    libcurl.m4: Avoid obsolete warning

    Closes #821

commit b7a2ba8a4b24a3f8394210a783f63dd5b632cbec
Author: Michael Kaufmann <>
Date:   Fri May 20 00:06:40 2016 +0200

    CURLOPT_CONNECT_TO.3: user must not free the list prematurely

    The connect-to list isn't copied so as long as the handle may be used
    for a transfer the list must be valid.

    Reported-by: Michael Kaufmann

commit f59e45381fd74766cc824dccf94d6fca08a55636
Author: Daniel Stenberg <>
Date:   Thu May 19 14:01:30 2016 +0200

    RELEASE-NOTES: synced with 48114a8634242c

commit 234359a35e616abed1df03bb136badc4707d8f07
Author: Daniel Stenberg <>
Date:   Thu May 19 11:39:59 2016 +0200

    openssl: ERR_remove_thread_state() is deprecated in latest 1.1.0

    See OpenSSL commit 21e001747d4a

commit 34072e6b841eb4c6c6b64d8e961df761759a5c14
Author: Daniel Stenberg <>
Date:   Thu May 19 11:16:30 2016 +0200

    http2: use HTTP/2 in the HTTP/1.1-alike header

    ... when generating them, not "2.0" as the protocol is called just
    HTTP/2 and nothing else.

commit eca9b047ead3f083acc997afb0f487c832a94f87
Author: Jay Satiro <>
Date:   Thu May 19 03:13:07 2016 -0400

    dist: include curl_multi_socket_all.3


commit 456a5917b84f83ffa8c2e4147bab3665d2539e86
Author: Steve Holme <>
Date:   Wed May 18 17:47:38 2016 +0100

    bump: Start work on 7.49.1

commit 1a9bd0a56b02f511e052fd435c2ba47d3a078d51
Author: Daniel Stenberg <>
Date:   Wed May 18 14:10:36 2016 +0200

    curlbuild.h.dist: check __LP64__ as well to fix MIPS build

    The preprocessor check that sets up the 32bit defines for non-configure
    builds didn't work properly for MIPS systems as __mips__ is defined for
    both 32bit and 64bit. Now __LP64__ is also checked and indicates 64bit.

    Reported-by: Tomas Jakobsson
    Fixes #813

commit 4aed60b2fcd5530d9f5120dc4267df66d91831f9
Author: Marcel Raad <>
Date:   Wed May 18 11:54:58 2016 +0200

    schannel: fix compile break with MSVC XP toolset

    For the Windows XP toolset of Visual C++ 2013/2015, the old Windows SDK
    7.1 is used. In this case, _USING_V110_SDK71_ is defined.

    Closes #812

commit 7b751afff720c902890e9325d343975976105ce9
Author: Daniel Stenberg <>
Date:   Wed May 18 10:35:15 2016 +0200

    dist: include

    Reported-by: Paul Howarth

commit d04299a3f0dccc0a4f6ce3d66edcf31b543a29dc
Author: Daniel Stenberg <>
Date:   Wed May 18 09:17:27 2016 +0200

    test/ include and in dist

    Reported-by: Ray Satiro

commit 44e3f1b1994cf191fb12b54b34accd3d0d5ef3f3
Author: Daniel Stenberg <>
Date:   Tue May 17 14:50:19 2016 +0200

    THANKS: 24 new names from 7.49.0 release notes

commit 75de066af318eb800fcff13908f17e7f8e8c28ba
Author: Daniel Stenberg <>
Date:   Tue May 17 14:02:11 2016 +0200

    RELEASE-NOTES: 7.49.0

commit 668279d7886e77b0bdea75ee1f491227cc038334
Author: Daniel Stenberg <>
Date:   Sun Apr 24 17:52:18 2016 +0200

    mbedtls/polarssl: set "hostname" unconditionally otherwise the TLS libs will skip the CN/SAN check and just allow
    connection to any server. curl previously skipped this function when SNI
    wasn't used or when connecting to an IP address specified host.


    Reported-by: Moti Avrahami

commit 655dc6765af2744ac83e7aa35d528ae848997e0b
Author: Frank Gevaerts <>
Date:   Tue May 17 14:22:56 2016 +0200

    CURLOPT_RESOLVE.3: fix typo

    Closes #811

commit d4ac13e8b1e25804616811596d43b5a19e2808fe
Author: Daniel Stenberg <>
Date:   Tue May 17 13:17:07 2016 +0200


commit 687af54a81c551b3d2cf05f18efcf2e00bac59e7
Author: Daniel Stenberg <>
Date:   Tue May 17 11:13:48 2016 +0200

    KNOWN_BUGS: GnuTLS backend skips really long certificate fields

    Closes #762

commit 0e2daece7fc985fbd752e45b8a3b6f88f2bd8665
Author: Daniel Stenberg <>
Date:   Tue May 17 11:08:10 2016 +0200

    CURLOPT_HTTPPOST.3: the data needs to be around while in use

commit 479ecd7db082e813a050b7013603bb24bdf47ff0
Author: Daniel Stenberg <>
Date:   Tue May 17 09:34:33 2016 +0200

    openssl: get_cert_chain: fix NULL dereference

    CID 1361815: Explicit null dereferenced (FORWARD_NULL)

commit b5c90dd535eeafc3132e9279d7d0c6b537d96ac1
Author: Daniel Stenberg <>
Date:   Tue May 17 09:14:06 2016 +0200

    openssl: get_cert_chain: avoid NULL dereference

    CID 1361811: Explicit null dereferenced (FORWARD_NULL)

commit ca80fc55f8034ae162de943ec0326559059bbd88
Author: Daniel Stenberg <>
Date:   Tue May 17 09:06:32 2016 +0200

    dprintf_formatf: fix (false?) Coverity warning

    CID 1024412: Memory - illegal accesses (OVERRUN). Claimed to happen when
    we run over 'workend' but the condition says <= workend and for all I
    can see it should be safe. Compensating for the warning by adding a byte
    margin in the buffer.

    Also, removed the extra brace level indentation in the code and made it
    so that 'workend' is only assigned once within the function.

commit 442633b6389a8d3cc2f4a0a67861fad4cf7ca76b
Author: Daniel Stenberg <>
Date:   Mon May 16 09:05:03 2016 +0200

    RELEASE-NOTES: synced with 2dcb5adc72d6

commit fdf5fa1ec78b6a022291aa52c4b8dbbde0ed8524
Author: Daniel Stenberg <>
Date:   Mon May 16 09:04:13 2016 +0200

    THANKS-filter: fixed Jonathan Cardoso

commit f727be5b9168b3b324e95cf4474a00e1703e5828
Author: Jay Satiro <>
Date:   Sun May 15 23:48:47 2016 -0400

    ftp: fix incorrect out-of-memory code in Curl_pretransfer

    - Return value type must match function type.


    Caught by Travis CI

commit 115c262e43a0414adeb5b267facf65230a8adab5
Author: Daniel Stenberg <>
Date:   Sun May 15 00:37:36 2016 +0200

    ftp wildcard: segfault due to init only in multi_perform

    The proper FTP wildcard init is now more properly done in Curl_pretransfer()
    and the corresponding cleanup in Curl_close().

    The previous place of init/cleanup code made the internal pointer to be NULL
    when this feature was used with the multi_socket() API, as it was made within
    the curl_multi_perform() function.

    Reported-by: Jonathan Cardoso Machado
    Fixes #800

commit 2bff329fe002e3ef6c8060a250e9d8141be1af7f
Author: Jay Satiro <>
Date:   Fri May 13 16:01:35 2016 -0400

    libcurl-tlibcurl-thread: Update OpenSSL links

    Because the old OpenSSL link now redirects to their master documentation
    (currently 1.1.0), which does not document the required actions for
    OpenSSL <= 1.0.2.

commit 679c0c533feb0db3f6025ef2b2de30f6dc94bc53
Author: Viktor Szakats <>
Date:   Fri May 13 09:25:54 2016 +0200

    darwinssl.c: fix OS X codename typo in comment

commit 0d07a7d8236f7b824de5de98267ddf15b9ee9c56
Author: Daniel Stenberg <>
Date:   Fri May 13 00:18:53 2016 +0200

    RELEASE-NOTES: synced with 68701e51c1f7

    Added 8 bug fixes and 5 more contrbutors

commit 40513b6443a2382788d280fdea582bc5e683e924
Author: Jay Satiro <>
Date:   Wed Mar 9 02:59:05 2016 -0500

    mprintf: Fix processing of width and prec args

    Prior to this change a width arg could be erroneously output, and also
    width and precision args could not be used together without crashing.

    "%0*d%s", 2, 9, "foo"

    Before: "092"
    After: "09foo"

    "%*.*s", 5, 2, "foo"

    Before: crash
    After: "   fo"

    Test 557 is updated to verify this and more

commit e98d916b1fb32aa9efcdf5468f314667e7649c16
Author: Michael Kaufmann <>
Date:   Fri May 13 00:02:21 2016 +0200

    ConnectionExists: follow-up fix for proxy re-use

    Follow-up commit to 5823179

    Closes #648

commit c0c7f7b3c4a18a328650bfe78a7465b18839a932
Author: Per Malmberg <>
Date:   Thu May 12 12:16:16 2016 +0200

    darwinssl: fix certificate verification disable on OS X 10.8

    The new way of disabling certificate verification doesn't work on
    Mountain Lion (OS X 10.8) so we need to use the old way in that version
    too. I've tested this solution on versions 10.7.5, 10.8, 10.9, 10.10.2
    and 10.11.

    Closes #802

commit d8dcc863c443467b5ddb0fc04f7882fdd6214957
Author: Cory Benfield <>
Date:   Wed May 11 12:35:05 2016 +0100

    http2: Add space between colon and header value

    curl's representation of HTTP/2 responses involves transforming the
    response to a format that is similar to HTTP/1.1. Prior to this change,
    curl would do this by separating header names and values with only a
    colon, without introducing a space after the colon.

    While this is technically a valid way to represent a HTTP/1.1 header
    block, it is much more common to see a space following the colon. This
    change introduces that space, to ensure that incautious tools are safely
    able to parse the header block.

    This also ensures that the difference between the HTTP/1.1 and HTTP/2
    response layout is as minimal as possible.


    Closes #798
    Fixes #797

commit 5dfc9472377fba79ae7387ca8abbd5ef09c8557f
Author: Kamil Dudka <>
Date:   Thu May 12 08:36:21 2016 +0200

    openssl: fix compile-time warning in Curl_ossl_check_cxn()

    ... introduced in curl-7_48_0-293-g2968c83:

    lib/vtls/openssl.c: scope_hint: In function ‘Curl_ossl_check_cxn’
    lib/vtls/openssl.c:767:15: warning: conversion to ‘int’ from ‘ssize_t’
    may alter its value [-Wconversion]

commit e43046d2acdb834528447ca26bf001890cefcf62
Author: Jay Satiro <>
Date:   Wed May 11 21:21:15 2016 -0400

    openssl: stricter connection check function

    - In the case of recv error, limit returning 'connection still in place'

    This is an improvement on the parent commit which changed the openssl
    connection check to use recv MSG_PEEK instead of SSL_peek.


commit 3015848733b70e73457d6caba257a309e143e1d2
Author: Anders Bakken <>
Date:   Tue May 10 12:49:33 2016 -0700

    TLS: SSL_peek is not a const operation

    Calling SSL_peek can cause bytes to be read from the raw socket which in
    turn can upset the select machinery that determines whether there's data
    available on the socket.

    Since Curl_ossl_check_cxn only tries to determine whether the socket is
    alive and doesn't actually need to see the bytes SSL_peek seems like
    the wrong function to call.

    We're able to occasionally reproduce a connect timeout due to this
    bug. What happens is that Curl doesn't know to call SSL_connect again
    after the peek happens since data is buffered in the SSL buffer and thus
    select won't fire for this socket.

    Closes #795

commit c255912dfd8fcaa06720bb736dc253434ed42be1
Author: Daniel Stenberg <>
Date:   Mon May 9 16:50:11 2016 +0200

    TLS: move the ALPN/NPN enable bits to the connection

    Only protocols that actually have a protocol registered for ALPN and NPN
    should try to get that negotiated in the TLS handshake. That is only
    HTTPS (well, http/1.1 and http/2) right now. Previously ALPN and NPN
    would wrongly be used in all handshakes if libcurl was built with it

    Reported-by: Jay Satiro

    Fixes #789

commit b5354fc1f99756ab9cf8540d5feb67c6e0ecb46d
Author: Daniel Stenberg <>
Date:   Sun May 8 15:48:26 2016 +0200

    libcurl-thread.3: openssl 1.1.0 is safe, and so is boringssl

commit 5d9516199c4e6c4e26e2c3913fb24d311f3c3e0e
Author: Antonio Larrosa <>
Date:   Thu May 5 19:50:15 2016 +0200

    connect: fix invalid "Network is unreachable" errors

    Sometimes, in systems with both ipv4 and ipv6 addresses but where the
    network doesn't support ipv6, Curl_is_connected returns an error
    (intermittently) even if the ipv4 socket connects successfully.

    This happens because there's a for-loop that iterates on the sockets but
    the error variable is not resetted when the ipv4 is checked and is ok.

    This patch fixes this problem by setting error to 0 when checking the
    second socket and not having a result yet.

    Fixes #794

commit 90fa4d7fff229814c8698a6cb1a43f5af227ce86
Author: Jay Satiro <>
Date:   Thu May 5 14:34:27 2016 -0400

    FAQ: refer to thread safety guidelines

commit d02ab0afd3d640d51105f537aa17603ad1c3f2a0
Author: Daniel Stenberg <>
Date:   Mon May 2 23:15:05 2016 +0200

    connections: non-HTTP proxies on different ports aren't reused either

    Reported-by: Oleg Pudeyev and fuchaoqun

    Fixes #648

commit 44577c9ad426222f0c49887521fecf1b1e7a3e17
Author: Daniel Stenberg <>
Date:   Mon May 2 11:24:11 2016 +0200

    http: make sure a blank header overrides accept_decoding

    Reported-by: rcanavan
    Assisted-by: Isaac Boukris
    Closes #785

commit 2e77fc44fa39ac83ef5a3f54aa1bdbe40b0f04a7
Author: Daniel Stenberg <>
Date:   Mon May 2 11:18:59 2016 +0200 clarified, explained the whitelist file

commit 80fbb64602d3142da9c8faa34e86bb79ea092062
Author: Daniel Stenberg <>
Date:   Mon May 2 09:09:16 2016 +0200 verify that references are made with \fI

commit 814abf8a78a4a08e824c6060cb5a9d457076f6ef
Author: Daniel Stenberg <>
Date:   Mon May 2 09:09:36 2016 +0200

    docs: unified man page references to use \fI

commit abb9392f47f078f13f43eab1ee9591c39ecd76a5
Author: Daniel Stenberg <>
Date:   Mon May 2 08:36:54 2016 +0200

    TODO: 17.14 --fail without --location should treat 3xx as a failure

    Closes #727

commit cfd22fe432a74ba872bc4d3cf32e25a6c9eff9ff
Author: Daniel Stenberg <>
Date:   Sun May 1 23:44:02 2016 +0200

    RELEASE-NOTES: synced with 7987f5cb14d

commit 516b948e1cd493f349d8ebd25567ad0c1e1dfe17
Author: Isaac Boukris <>
Date:   Sat Apr 23 15:52:04 2016 +0300

    CURLOPT_ACCEPT_ENCODING.3: Follow-up clarification

    Mention possible content-length mismatch with sum of bytes reported
    by write callbacks when auto decoding is enabled.

    See #785

commit 4ed86b17332198915d0fcb22b71808782dc838d9
Author: Daniel Stenberg <>
Date:   Sun May 1 23:07:35 2016 +0200

    test1140: run nroff-scan to verify man pages

commit ee4eaef37334771515b434bb29c468961fce517d
Author: Daniel Stenberg <>
Date:   Sun May 1 23:07:06 2016 +0200 verify the .BR references as well

commit be8bb56607f76f5a0d130bb12595c73bd7a9c9dd
Author: Daniel Stenberg <>
Date:   Sun May 1 23:06:43 2016 +0200

    CURLOPT_CONV_TO_NETWORK_FUNCTION.3: fix bad man page reference

commit 287911ab351da110b56f739a86dd1cee2e2e46c7
Author: Daniel Stenberg <>
Date:   Sun May 1 23:06:15 2016 +0200


commit 61f2805e3d1b7a71a05a78b87f2e310b55d68d9e
Author: Daniel Stenberg <>
Date:   Sun May 1 23:05:55 2016 +0200

    curl_easy_pause.3: fix man page reference

commit a4305a67583eeeb52c9473de3d0d449b82d2ed56
Author: Jay Satiro <>
Date:   Sun May 1 16:07:04 2016 -0400

    tool_cb_hdr: Fix --remote-header-name with schemeless URL

    - Move the existing scheme check from tool_operate.

    In the case of --remote-header-name we want to parse Content-disposition
    for a filename, but only if the scheme is http or https. A recent
    adjustment 0dc4d8e was made to account for schemeless URLs however it's
    not 100% accurate. To remedy that I've moved the scheme check to the
    header callback, since at that point the library has already determined
    the scheme.

    Reported-by: Kai Noda

commit bf412cbe0eafc775648fd131a73e4105408402ee
Author: Daniel Stenberg <>
Date:   Sun May 1 17:05:38 2016 +0200

    tls: make setting pinnedkey option fail if not supported

    to make it obvious to users trying to use the feature with TLS backends
    not supporting it.

    Discussed in #781
    Reported-by: Travis Burtrum

commit 76c831213e77e0970662d6a224479de27155ebc0
Author: Daniel Stenberg <>
Date:   Sun May 1 16:41:35 2016 +0200 verifies nroff pages

    ... not used by any test yet but can be used stand-alone.

commit 32dd6a5d71b8ffc7ff5dc3af2d0eaade5ec54683
Author: Daniel Stenberg <>
Date:   Sun May 1 16:41:04 2016 +0200

    opts: fix broken/bad references

commit 5259ac9abd43ea647e2fb2510abbf4a60275ecf3
Author: Michael Kaufmann <>
Date:   Sun May 1 13:22:16 2016 +0200

    docs: fix bugs in CURLOPT_HTTP_VERSION.3 and CURLOPT_PIPEWAIT.3

    Closes #786

commit 7199a99bf4f8b914e59f9bf689bf51513f2af4ef
Author: Daniel Stenberg <>
Date:   Sun May 1 13:29:11 2016 +0200


    As discussed in #785

commit 677c1b453c35daf094ef8e9687cfbcc93844e17c
Author: Daniel Stenberg <>
Date:   Sat Apr 30 00:15:44 2016 +0200

    curl.1: --mail-rcpt can be used multiple times

    Reported-by: mgendre
    Closes #784

commit 3ef3eed84e0e8d779d7b85f7764a25ff887fee71
Author: Karlson2k <>
Date:   Mon Feb 22 10:06:53 2016 +0300

    tests: Use 'pathhelp' for paths conversions in

    Closes #675

commit f4f19b838451966761a3e67b79ff08a3e2e3d2cc
Author: Karlson2k <>
Date:   Sun Feb 21 23:17:57 2016 +0300

    tests: Use 'pathhelp' for paths conversions in

commit 059cad2a994286246386be181a8a4185e8cf32b8
Author: Karlson2k <>
Date:   Wed Mar 16 00:14:47 2016 +0300

    tests: Use 'pathhelp' for current path in

commit 9e1429c09847bd15200ff837c3ed7e6f9988e39c
Author: Karlson2k <>
Date:   Tue Mar 15 23:07:19 2016 +0300

    tests: to process paths on Msys/Cygwin

commit 6c4a308a688c6f9bfd218d6c7faced84745d964a
Author: Daniel Stenberg <>
Date:   Fri Apr 29 15:46:40 2016 +0200

    lib: include curl_printf.h as one of the last headers

    curl_printf.h defines printf to curl_mprintf, etc. This can cause
    problems with external headers which may use
    __attribute__((format(printf, ...))) markers etc.

    To avoid that they cause problems with system includes, we include
    curl_printf.h after any system headers. That makes the three last
    headers to always be, and we keep them in this order:


    None of them include system headers, they all do funny #defines.

    Reported-by: David Benjamin

    Fixes #743

commit c273bf8e8fb146190cfe7974eafc79fe65ae474d
Author: Daniel Stenberg <>
Date:   Fri Apr 29 15:33:46 2016 +0200

    memdebug.h: remove inclusion of other headers

    Mostly because they're not needed, because memdebug.h is always included
    last of all headers so the others already included the correct ones.

    But also, starting now we don't want this to accidentally include any
    system headers, as the header included _before_ this header may add
    defines and other fun stuff that we won't want used in system includes.

commit dd865137fafade1ee1ea2d4e8f39e27b915416ff
Author: Jay Satiro <>
Date:   Fri Apr 29 15:24:10 2016 +0200

    curl -J: make it work even without http:// scheme on URL

    It does open up a miniscule risk that one of the other protocols that
    libcurl could use would send back a Content-Disposition header and then
    curl would act on it even if not HTTP.

    A future mitigation for this risk would be to allow the callback to ask
    libcurl which protocol is being used.

    Verified with test 1312

    Closes #760

commit ac019c3d473f88553eb15264a138498b6bde6089
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:52:37 2016 +0200 also verify the command line option docs

    This script now also scans src/tool_getparam.c, docs/curl.1 and
    src/tool_help.c and will warn if any of them lists a command line option
    not mentioned in one of the other places.

commit a111f803aef53cfa339a924823343fd19a2a1147
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:50:52 2016 +0200

    curl: show the long option version of -q in the -h list

commit f01933f079e72b0bb5c7276dc211ee03cf628c2a
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:47:03 2016 +0200

    curl: remove "--socks" as "--socks5" turned 8

    In commit 2e42b0a2524 (Jan 2008) we made the option "--socks" deprecated
    and it has not been documented since. The more explicit socks options
    (like --socks4 or --socks5) should be used.

commit 500177d9de72cec03d85a24423ead24a33ba8a40
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:46:31 2016 +0200

    curl.1: document the deprecated --ftp-ssl option

commit 2bd39a8a16f99a44612937466574c1ead7a5327c
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:38:28 2016 +0200

    curl: remove --http-request

    It was mentioned as deprecated already in commit ae1912cb0d4 from
    1999. It has not been documented in this millennium.

commit a925bd58567a44ba47c7aabf2ace8240e81290e5
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:33:27 2016 +0200

    curl: mention --ntlm-wb in -h list

commit ab8392d34a70f514aa9277fe7d2e11165c81605c
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:31:53 2016 +0200

    curl: -h output lacked --proxy-header

commit 19c03ca2f367b99aa2ed11aed356eb13c105e737
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:26:52 2016 +0200

    curl.1: document --ntlm-wb

commit 2c6382994de9ae6834b7df86a0fd2e1306b38c14
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:23:44 2016 +0200

    curl.1: document the long format of -q: --disable

commit 48a27255cce7077c54f6e27770c7421689df084c
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:23:17 2016 +0200

    curl.1: mention the deprecated --krb4 option

commit 50dcd06fca6d95d0240ec66613d04be93402ca94
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:18:28 2016 +0200

    curl.1: document --ftp-ssl-reqd

    Even if deprecated, document it so that people will find it as old
    scripts may still use it.

commit 5b98227a56c3f383ab9febe06e735816f3419d42
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:13:55 2016 +0200

    curl: use --telnet-option as documented

    The code said "telnet-options" but no documentation ever said so. It
    worked fine since the code is fine with a unique match of the first

commit daf1a22df81eb90f484240b25d957111a2343418
Author: Daniel Stenberg <>
Date:   Thu Apr 28 23:08:42 2016 +0200

    getparam: remove support for --ftpport

    It has been deprecated and undocumented since commit ad5ead8bed7 (Dec
    2003). --ftp-port is the proper long option name.

commit bac90204b3a5bc745a716c559dc9bd522fe3ddb6
Author: Daniel Stenberg <>
Date:   Thu Apr 28 22:32:05 2016 +0200

    curl: make --disable work as long form of -q

    To make the aliases list reflect reality.

commit 862768dcec82e1704c4606d28185d158b6d15e2c
Author: Daniel Stenberg <>
Date:   Thu Apr 28 22:28:37 2016 +0200

    aliases: remove trailing space from capath string

commit d511fd9c19603418e184670063654c3ef0f311ad
Author: Daniel Stenberg <>
Date:   Thu Apr 28 22:24:10 2016 +0200

    cmdline parse: only single letter options have single-letter strings

    ... moved around options so that parsing the code to find all
    single-letter options easier.

commit 55fa26fb7b7e44c989352ed25d40518abfdf94ae
Author: Jay Satiro <>
Date:   Thu Apr 28 16:48:38 2016 -0400

    CURLINFO_TLS_SSL_PTR.3: Clarify SSL pointer availability

    Reported-by: Bru Rom

commit a5fe7027b7173015ef72d8477ede65ca573e8747
Author: Daniel Stenberg <>
Date:   Thu Apr 28 16:31:37 2016 +0200

    curl_easy_getinfo.3: remove superfluous blank lines

commit ca2a93176aedfacaf600ed2e45d1152195f454b4
Author: Daniel Stenberg <>
Date:   Thu Apr 28 16:27:51 2016 +0200

    test1139: verifies libcurl option man page presence

    - checks that each option has its own man page present

    - checks that each option is mentioned in its corresponding index man

commit 3567c6611567b7afb5170c61b0cad28841b2a522
Author: Daniel Stenberg <>
Date:   Thu Apr 28 16:26:42 2016 +0200

    curl_easy_getinfo.3: added missing mention of CURLINFO_TLS_SESSION

    ... although it is deprecated.

commit c5498c5dae9493021afab86f8311bd850969520a
Author: Jay Satiro <>
Date:   Thu Apr 28 02:57:12 2016 -0400

    mbedtls: Fix session resume

    This also fixes PolarSSL session resume.

    Prior to this change the TLS session information wasn't properly
    saved and restored for PolarSSL and mbedTLS.

    Reported-by: Thomas Glanzmann

    Reported-by: Moti Avrahami

commit 73323130a5d74b81f54f82ff8a8a582d86cc7e99
Author: Daniel Stenberg <>
Date:   Wed Apr 27 15:31:38 2016 +0200

    RELEASE-NOTES: synced with f4298fcc6d2

commit 1a26114061f097a84544c0796d81d5f0885ee1aa
Author: Michael Kaufmann <>
Date:   Tue Apr 26 23:51:50 2016 +0200

    opts: Fix some syntax errors in example code fragments

    Fixes #779

commit c6ce372b239d13d143f85080a1c8c503f49a959f
Author: Daniel Stenberg <>
Date:   Tue Apr 26 23:55:31 2016 +0200

    openssl: avoid BN_print a NULL bignum

    OpenSSL 1.1.0-pre seems to return NULL(?) for a whole lot of those
    numbers so make sure the function handles this.

    Reported-by: Linus Nordberg

commit 5abce4f5941db07ede65dec1e5c61d042484fa14
Author: Marcel Raad <>
Date:   Mon Feb 15 08:58:36 2016 +0100

    CONNECT_ONLY: don't close connection on GSS 401/407 reponses

    Previously, connections were closed immediately before the user had a
    chance to extract the socket when the proxy required Negotiate

    This regression was brought in with the security fix in commit

    Closes #655

commit 1e6ac00de13959b1d1945d4e024a287efc929c6a
Author: Daniel Stenberg <>
Date:   Tue Apr 26 15:17:07 2016 +0200

    CURLINFO_TLS_SESSION.3: clarify TLS library support before 7.48.0

commit 62ffc7de90adfb6f3a882707a82983bbd0c7277e
Author: Daniel Stenberg <>
Date:   Tue Apr 26 00:28:40 2016 +0200

    mbedtls.c: silly spellfix of a comment

commit 6aee1e17934fd3dc9604df0a415710f6d1ab249c
Author: Daniel Stenberg <>
Date:   Tue Apr 26 00:07:40 2016 +0200

    KNOWN_BUGS: 1.10 Strips trailing dot from host name

    Closes #716

commit 24ae676c66294f0f9051a7c6e6ddb060577d78fc
Author: Daniel Stenberg <>
Date:   Mon Apr 25 23:51:33 2016 +0200

    test1322: verify stripping of trailing dot from host name

    While being debated (in #716) and a violation of RFC 7230 section 5.4,
    this test verifies that the existing functionality works as intended. It
    strips the dot from the host name and uses the host without dot
    throughout the internals.

commit 83e671d225c5cdb982d3a89e9143975dcf532f46
Author: Daniel Stenberg <>
Date:   Sat Apr 23 22:46:15 2016 +0200

    multi: accidentally used resolved host name instead of proxy

    Regression introduced in 09b5a998

    Reported-by: BoBo

commit d212b90b1a4167bb9aa6b9f20c8f2332f11eb86e
Author: Daniel Stenberg <>
Date:   Mon Apr 25 23:15:00 2016 +0200

    symbols-in-versions: added new CURLSSLBACKEND_ symbols

commit 8f2ae61d9e3604c19d5adfcbdfc106ed14d19409
Author: Daniel Stenberg <>
Date:   Mon Apr 25 23:10:13 2016 +0200

    test148: fixed after the --ftp-create-dirs retry change

    follow-up commit to 3c1e84f569 as it made curl try a little harder

commit a668d5bbe33d8c7acdda77af19060bb1716ef03c
Author: Daniel Stenberg <>
Date:   Mon Apr 25 11:35:12 2016 +0200

    curl.h: clarify curl_sslbackend for openssl clones and renames

commit cadb702ac30c58522ac60cbf06bf8d11a4394651
Author: Karlson2k <>
Date:   Mon Apr 25 12:12:26 2016 +0300

    url.c: fixed DEBUGASSERT() for WinSock workaround

    If buffer is allocated, but nothing is received during prereceive
    stage, than number of processed bytes must be zero.

    Closes #778

commit c13f42898f81ca023afa67f0db0c82b997f6406c
Author: Daniel Stenberg <>
Date:   Mon Apr 25 11:20:23 2016 +0200

    KNOWN_BUGS: --interface for ipv6 binds to unusable IP address

    Closes #686 for now.

commit 5f46d6f694c7b59ae6bec5561a202064bbaf5bcf
Author: Daniel Stenberg <>
Date:   Sun Apr 24 23:51:34 2016 +0200

    TODO: 1.17 Add support for IRIs

    Adding support for IRIs is a mouthful, but is probably interesting at
    least for areas and countries where the use of such "URLs" are growing

    Closes #776

commit 9c6a48fcedf56d54ffdb8a5dee2da660c324d343
Author: Daniel Stenberg <>
Date:   Sun Apr 24 12:46:41 2016 +0200

    THANKS-filter: Travis Burtrum

commit c143ec0ac918d973ec1b718b5e82d4dd90da1534
Author: Daniel Stenberg <>
Date:   Sun Apr 24 12:27:22 2016 +0200

    lib1517: checksrc compliance

commit ec80fa3185eefcd26ed616eaff7aa60effce5702
Author: moparisthebest <>
Date:   Thu Apr 21 21:21:45 2016 -0400

    PolarSSL: Implement public key pinning

commit 140f6df1c9f66333dc2d9500f1ec5ac0c56e677b
Author: Patrick Monnerat <>
Date:   Fri Apr 22 16:50:30 2016 +0200

    os400: upgrade ILE/RPG binding

commit ec429a02e4d6ec0d5328153131e291aa60dbf04b
Author: Patrick Monnerat <>
Date:   Fri Apr 22 16:49:02 2016 +0200

    curl.h: CURLOPT_CONNECT_TO sets a struct slist *, not a string

commit eaee7dfb7bf7263db19070a5d1c5bf8c329386cf
Author: Daniel Stenberg <>
Date:   Fri Apr 22 15:53:42 2016 +0200 make --releasenotes implied

    It got too annoying to type =)

commit 9d415a922c5ae1ee7ce70fa52e1ae0a4e8bca88a
Author: Daniel Stenberg <>
Date:   Fri Apr 22 15:46:34 2016 +0200

    RELEASE-NOTES: synced with 3c1e84f5693d8093

commit 93430cb00430e45521bf043694cdfc707c01ba3d
Author: Daniel Stenberg <>
Date:   Fri Apr 22 15:25:13 2016 +0200

    curl: make --ftp-create-dirs retry on failure

    The underlying libcurl option used for this feature is
    CURLOPT_FTP_CREATE_MISSING_DIRS which has the ability to retry the dir
    creation, but it was never set to do that by the command line tool.

    Now it does.

    Reported-by: John Wanghui
    Help-by: Leif W

commit 521b69dde4bc36b97bc7830824b8d32cf6777db3
Author: Daniel Stenberg <>
Date:   Thu Apr 21 23:14:13 2016 +0200

    KNOWN_BUGS: fixed "5.6 Improper use of Autoconf cache variables"

    As of commit d9f3b365a3

commit 1b1c7b55c63ca4b5b53b9f8faff6cb626d5570ad
Author: Irfan Adilovic <>
Date:   Sun Apr 17 22:05:15 2016 +0200

    configure: ac_cv_ -> curl_cv_ for write-only vars

    These configure vars are modified in a curl-specific way but never
    evaluated or loaded from cache, even though they are designated as
    _cv_. We could either implement proper AC_CACHE_CHECKs for them, or
    remove them completely.

    Fixes #603 as ac_cv_func_gethostbyname is no longer clobbered, and
    AC_CHECK_FUNC(gethostbyname...) will no longer spuriously succeed after
    the first configure run with caching.

    `ac_cv_func_strcasecmp` is curious, see #770.

    `eval "ac_cv_func_$func=yes"` can still cause problems as it works in
    tandem with AC_CHECK_FUNCS and then potentially modifies its result. It
    would be best to rewrite this test to use a new CURL_CHECK_FUNCS macro,
    which works the same as AC_CHECK_FUNCS but relies on caching the values
    of curl_cv_func_* variables, without modifiying ac_cv_func_*.

commit 4c09479d6298cdd15668d084fb925deab9cd8f05
Author: Irfan Adilovic <>
Date:   Sun Apr 17 21:58:15 2016 +0200

    configure: ac_cv_ -> curl_cv_ for r/w vars

    These configure vars are modified in a curl-specific way and modified by
    the configure process, but are never loaded from cache, even though they
    are designated as _cv_. We should implement proper AC_CACHE_CHECKs for
    them eventually.

commit 8f363a559b17328934000ae9d0c2b733586b7cb0
Author: Irfan Adilovic <>
Date:   Sun Apr 17 17:01:13 2016 +0200

    configure: ac_cv_func_clock_gettime -> curl_...

    This variable must not be cached in its current form, as any cached
    information will prevent the next configure run from determining the
    correct LIBS needed for the function. Thus, rename prefix `ac_cv_` to
    just `curl_`.

commit c9db2a9b5a077e1f15ce6ba728a9fcffae34d825
Author: Irfan Adilovic <>
Date:   Fri Apr 15 16:37:20 2016 +0200

    configure: ac_cv_ -> curl_cv_ for all cached vars

    This was automated by:

    sed -b -i -f <(ack -A1 AC_CACHE_CHECK | \
                   ack -o 'ac_cv_.*?\b' | \
                   sort -u | xargs -n1 bash -c \
                        'echo "s/$0/curl_cv_${0#ac_cv_}/g"') \
        $(git ls-files)

    This only changed the prefix for 16 variables actually checked with

commit 06e5a532303f3d53ea72903964cf2a17c6431ea6
Author: Daniel Stenberg <>
Date:   Thu Apr 21 10:24:23 2016 +0200

    openssl: builds with OpenSSL 1.1.0-pre5

    The RSA, DSA and DH structs are now opaque and require use of new APIs

    Fixes #763

commit 9c4d5c0bc22586f7ad9365f256952b1b862f8b47
Author: Steve Holme <>
Date:   Wed Apr 20 18:07:05 2016 +0100

    url.c: Prefer we don't use explicit NULLs in conditions

    Fixed commit fa5fa65a30 to not use NULLs in if condition.

commit b9be5347b632ee24c93003db39bd9883cdbf6139
Author: Isaac Boukris <>
Date:   Sat Apr 16 11:49:09 2016 +0300

    NTLM: check for NULL pointer before deferencing

    At ConnectionExists, both check->proxyuser and check->proxypasswd
    could be NULL, so make sure to check first.

    Fixes #765

commit 636970d11edbffae693c47109a500ef9e451624c
Author: Karlson2k <>
Date:   Thu Mar 17 20:04:20 2016 +0300

    tests: added test1517

    ... for checking ability to receive full HTTP response when POST request
    is used with slow read callback function.

    This test checks for bug #657 and verifies the work-around from

    Closes #720

commit 916d86e9ecfd95888a20b4d8315bf8899a1f26c0
Author: Karlson2k <>
Date:   Fri Feb 19 22:38:20 2016 +0300

    sendf.c: added ability to call recv() before send() as workaround

    WinSock destroys recv() buffer if send() is failed. As result - server
    response may be lost if server sent it while curl is still sending
    request. This behavior noticeable on HTTP server short replies if
    libcurl use several send() for request (usually for POST request).
    To workaround this problem, libcurl use recv() before every send() and
    keeps received data in intermediate buffer for further processing.

    Fixes: #657
    Closes: #668

commit 9b8c22af77364dcdbca2f3a75601c20a5c79fa2f
Author: Kamil Dudka <>
Date:   Tue Apr 19 09:38:44 2016 +0200

    connect: make sure that rc is initialized in singleipconnect()

    This commit fixes a Clang warning introduced in curl-7_48_0-190-g8f72b13:

    lib/connect.c:1120:11: warning: The right operand of '==' is a garbage value
    1118|       }
    1120|->     if(-1 == rc)
    1121|         error = SOCKERRNO;
    1122|     }

commit 99200bf300cf34988b0575acbc68bd1c747c3549
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:48:36 2016 +0200

    make/checksrc: use $srcdir, not $top_srcdir

commit 8508d3c1ea2127075c22011a6a6d08a2220da536
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:43:13 2016 +0200

    src/checksrc.whitelist: removed

commit 7a81cf54eb54ddfd45a756316fd425f8555ed721
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:42:55 2016 +0200

    tool_operate: switch to inline checksrc ignore

commit e37d9bee05cd6d292c84ef17aa28921640393f6b
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:30:43 2016 +0200

    lib/checksrc.whitelist: not needed anymore

    ... as checksrc now skips comments

commit 5a5e04d4a5bccf33d673b7df572bbbcec4306676
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:41:15 2016 +0200

    vtls.h: remove a space before semicolon

    ... that the new checksrc detected

commit 24121339200d7a16d759acf4ce054248cebfa0e8
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:32:14 2016 +0200

    darwinssl: removed commented out code

commit 5cf2c12553c10afe900d764de1c2af56f2aea71e
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:31:33 2016 +0200

    http_chunks: removed checksrc disable

    ... since checksrc now skips comments

commit 2d544104959b8c787c16b79eb818b98c9d59ead9
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:31:11 2016 +0200

    imap: inlined checksrc disable instead of whitelist edit

commit ccc4558ce3f409acbb083c81bf508c937a2ad864
Author: Daniel Stenberg <>
Date:   Tue Apr 19 08:30:13 2016 +0200

    checksrc: taught to skip comments

    ... but output non-stripped version of the line, even if that then can
    make the script identify the wrong position in the line at
    times. Showing the line stripped (ie without comments) is just too

commit e9e42a08e945b75b8750a04652a0f5b1038aed9a
Author: Daniel Stenberg <>
Date:   Tue Apr 19 07:59:35 2016 +0200

    opts/ list all docs file one by one

    ... to make it easier to add lines in patches that won't just break all
    other patches trying to add lines too.

commit b8869ab0336c56e4b1ca104e32743bb65437a197
Author: Daniel Stenberg <>
Date:   Tue Apr 19 00:48:56 2016 +0200

    curl_easy_setopt.3: mention CURLOPT_TCP_FASTOPEN

commit 69f02834b0a06154b4edfbb3320fd44da4886103
Author: Daniel Stenberg <>
Date:   Tue Apr 19 00:39:27 2016 +0200

    RELEASE-NOTES: synced with 03de4e4b219

    (since we just merged two major features)

commit d48a87f137c51197a8bd00a8b0c5cafe5ee2bcbb
Author: Alessandro Ghedini <>
Date:   Sun Apr 3 13:08:28 2016 +0100

    connect: implement TCP Fast Open for Linux

    Closes #660

commit ec2efbbe76a6f2c2c2c7d2152e50d95b051d3cf0
Author: Alessandro Ghedini <>
Date:   Tue Feb 16 12:21:34 2016 +0000

    tool: add --tcp-fastopen option

commit fede41982d60eafc1dd6b5b900af9454d9835039
Author: Alessandro Ghedini <>
Date:   Tue Feb 16 12:21:22 2016 +0000

    connect: implement TCP Fast Open for OS X

commit 7d651b2638ff30c5ba3bd2b3b783baf2fccc68da
Author: Alessandro Ghedini <>
Date:   Tue Feb 16 12:21:03 2016 +0000

    url: add CURLOPT_TCP_FASTOPEN option

commit 2575aa75a1cbabf94755a210fa9cdefccd5656ba
Author: Daniel Stenberg <>
Date:   Mon Apr 18 20:10:52 2016 +0200

    checksrc: pass on -D so the whitelists are found correctly

commit 6ce931dc188a2cd7ad9e13cdf1dbcd6a8f3352ac
Author: Daniel Stenberg <>
Date:   Mon Apr 18 15:53:24 2016 +0200

    configure: remove check for libresolve

    'strncasecmp' was once provided by libresolv (no trailing e) for SunOS,
    but this check is broken and most likely adds nothing useful. Removing

    Reported-by: Irfan Adilovic

    Discussed in #770

commit 5783715e63d2955a0a4c986630f66e981d79c21a
Author: Daniel Stenberg <>
Date:   Mon Apr 18 15:50:57 2016 +0200

    scripts/make: use $(EXEEXT) for executables

    Reported-by: bodop

    Fixes #771

commit f4652556a47a089f9d8d1e6e6567fecadcc41e5c
Author: Daniel Stenberg <>
Date:   Mon Apr 18 15:04:17 2016 +0200

    includes: avoid duplicate memory callback typdefs even harder

commit 1beb89235bbf4a2c450c620aef52792ea1aec7ed
Author: Daniel Stenberg <>
Date:   Mon Apr 18 14:58:11 2016 +0200

    checksrc/ use $top_srcdir to find source files

    ... to properly support out of source tree builds.

commit d6ab13ee1582c120abcf3ce3b777bad2e37ac10b
Author: Daniel Stenberg <>
Date:   Mon Apr 18 12:38:22 2016 +0200

    RELEASE-NOTES: synced with 26ec93dd6aeba8dfb5

commit 459837a0d01e596436065004cc8bb402bb3c6f68
Author: Daniel Stenberg <>
Date:   Mon Apr 18 00:02:29 2016 +0200

    opts: fix option references missing (section)

commit 91ae08be70964e1e8a167bf11f62744f8bf932a7
Author: Michael Kaufmann <>
Date:   Mon Jan 25 14:37:24 2016 +0100

    news: CURLOPT_CONNECT_TO and --connect-to

    Makes curl connect to the given host+port instead of the host+port found
    in the URL.

commit 61e819fa758ff2066657dd86258fbed9e4842648
Author: Daniel Stenberg <>
Date:   Sun Apr 17 17:16:21 2016 +0200

    makefile.vc6: use d suffix on debug object

    To allow both release and debug builds in parallel.

    Reported-by: Rod Widdowson

    Fixes #769

commit 3929ff667f43c84c55941ae2f3cd85ca6aae00c3
Author: Jay Satiro <>
Date:   Tue Apr 12 00:37:44 2016 -0400

    http2: Use size_t type for data drain count


commit 740224cb8ad57a997335476350edc77e0d0494db
Author: Jay Satiro <>
Date:   Thu Mar 3 01:24:27 2016 -0500

    http2: Improve header parsing

    - Error if a header line is larger than supported.

    - Warn if cumulative header line length may be larger than supported.

    - Allow spaces when parsing the path component.

    - Make sure each header line ends in \r\n. This fixes an out of bounds.

    - Disallow header continuation lines until we decide what to do.


commit 009f646d0785d5a2664604dcb2d89dcb9aaac285
Author: Jay Satiro <>
Date:   Thu Mar 3 00:47:46 2016 -0500

    http2: Add Curl_http2_strerror for HTTP/2 error codes


commit 9057183fd10c15a2fea4756ad523bdf2a418e78b
Author: Tatsuhiro Tsujikawa <>
Date:   Wed Feb 24 22:10:37 2016 +0900

    http2: Don't increment drain when one header field is received

    Sicne we write header field in temporary location, not in the memory
    that upper layer provides, incrementing drain should not happen.


commit e37d2d737b1c5d6aab419a1d7e1e264768c33d5b
Author: Tatsuhiro Tsujikawa <>
Date:   Tue Feb 23 23:33:04 2016 +0900

    http2: Ensure that http2_handle_stream_close is called

    This commit ensures that streams which was closed in on_stream_close
    callback gets passed to http2_handle_stream_close.  Previously, this
    might not happen.  To achieve this, we increment drain property to
    forcibly call recv function for that stream.

    To more accurately check that we have no pending event before shutting
    down HTTP/2 session, we sum up drain property into
    http_conn.drain_total.  We only shutdown session if that value is 0.

    With this commit, when stream was closed before reading response
    header fields, error code CURLE_HTTP2_STREAM is returned even if
    HTTP/2 level error is NO_ERROR.  This signals the upper layer that
    stream was closed by error just like TCP connection close in HTTP/1.


commit 5909a12a2cf5437a6b7889d579d9dab9139fb65c
Author: Tatsuhiro Tsujikawa <>
Date:   Mon Feb 22 21:20:38 2016 +0900

    http2: Process paused data first before tear down http2 session

    This commit ensures that data from network are processed before HTTP/2
    session is terminated.  This is achieved by pausing nghttp2 whenever
    different stream than current easy handle receives data.

    This commit also fixes the bug that sometimes processing hangs when
    multiple HTTP/2 streams are multiplexed.


commit 6187c4915af7663e66bd354e9691a75a3f9ee6c6
Author: Tatsuhiro Tsujikawa <>
Date:   Sat Feb 20 00:05:47 2016 +0900

    http2: Check session closure early in http2_recv


commit d1e3a4118c318cda35a1d13d497f9d662fb96683
Author: Tatsuhiro Tsujikawa <>
Date:   Wed Feb 17 21:36:59 2016 +0900

    http2: Add handling stream level error

    Previously, when a stream was closed with other than NGHTTP2_NO_ERROR
    by RST_STREAM, underlying TCP connection was dropped.  This is
    undesirable since there may be other streams multiplexed and they are
    very much fine.  This change introduce new error code
    CURLE_HTTP2_STREAM, which indicates stream error that only affects the
    relevant stream, and connection should be kept open.  The existing
    CURLE_HTTP2 means connection error in general.


commit e54b357afa6392988bfc4a244c8afc098d81d3e1
Author: Daniel Stenberg <>
Date:   Mon Apr 11 16:00:15 2016 +0200

    http2: drain the socket better...

    ... but ignore EAGAIN if the stream has ended so that we don't end up in
    a loop. This is a follow-up to c8ab613 in order to avoid the problem
    d261652 was made to fix.

    Reported-by: Jay Satiro
    Clues-provided-by: Tatsuhiro Tsujikawa

    Discussed in #750

commit c156ddf3bf36e5062a252b0999d9ea7391f79777
Author: Daniel Stenberg <>
Date:   Mon Apr 11 00:06:37 2016 +0200

    KNOWN_BUGS: added info for "Hangs with PolarSSL"

commit f92d85532a32966949d69a022685e069d01560c2
Author: Daniel Stenberg <>
Date:   Sun Apr 10 23:52:40 2016 +0200

    KNOWN_BUGS: 1.9 HTTP/2 frames while in the connection pool kill reuse

    Closes #750

commit 0595e31596ce1d63a22f2cc069a2ad2cc828560a
Author: Daniel Stenberg <>
Date:   Sat Apr 9 23:44:53 2016 +0200

    build: include scripts/ in the dist

commit 2cf9741af35ed3ab0246999b16ee4eda58c2ad72
Author: Steve Holme <>
Date:   Sat Apr 9 20:47:05 2016 +0100


    As these two options provide identical functionality, the former for
    SOCK5 proxies and the latter for HTTP proxies, merged the two options

    As such CURLOPT_SOCKS5_GSSAPI_SERVICE is marked as deprecated as of

commit c7f67a579102ea8b3d448386ca87545063cd0623
Author: Steve Holme <>
Date:   Sat Apr 9 17:19:21 2016 +0100

    urldata: Use bool for socks5_gssapi_nec as it is a flag

    This value is set to TRUE or FALSE so should be a bool and not a long.

commit 5571db99daff8776455e0cd26911a43616888e7c
Author: Steve Holme <>
Date:   Sat Apr 9 17:17:37 2016 +0100

    url: Ternary operator code style changes

commit 82832c3ec23fbe34604715e284515023bdf32bf0
Author: Steve Holme <>
Date:   Sat Apr 9 17:04:46 2016 +0100

    CODE_STYLE: Added ternary operator example to 'Space around operators'

    Following conversation on the libcurl mailing list.

commit 631fd545485701f7579de7f2a62941197a534885
Author: Steve Holme <>
Date:   Sat Apr 9 05:57:10 2016 +0100

    sasl: Fixed compilation errors from commit 9d89a0387

    ...when GSS-API or Windows SSPI are not used.

commit 7bf48a20328fc8ad5bedca0a6b79318fab29b7b8
Author: Steve Holme <>
Date:   Sat Apr 9 05:33:03 2016 +0100

    url: Corrected comments following 9d89a0387

commit 1c5c057b423b464623b460ebdf3acb363c7a237e
Author: Steve Holme <>
Date:   Fri Apr 8 21:45:08 2016 +0100

    docs: Added clarification following commit 9d89a0387

commit cb1a7cb8fc34a211da132d5715d27e65345984fe
Author: Steve Holme <>
Date:   Fri Apr 8 20:36:29 2016 +0100

    Makefile: Fixed echo of checksrc check

commit 22a32b61a4dd6508d841f1d4bd43582aea0d889f
Author: Steve Holme <>
Date:   Fri Apr 8 20:32:40 2016 +0100

    checksrc: Fix issue with the autobuilds not picking up the whitelist

commit 5cb2ad3c61b3d4ea3b77706ff771a18039d595b0
Author: Steve Holme <>
Date:   Fri Apr 8 20:22:14 2016 +0100

    checksrc: Added missing vauth and vtls directories

commit 02fab3975fe035e248ae6cc25ca5c4e46146de61
Author: Steve Holme <>
Date:   Fri Apr 8 18:59:33 2016 +0100

    ftp/imap/pop3/smtp: Allow the service name to be overridden

    Allow the service name to be overridden for DIGIST-MD5 and Kerberos 5
    authentication in FTP, IMAP, POP3 and SMTP.

commit c6274ba9e4f73efa070cc40f98df692130569a4c
Author: Steve Holme <>
Date:   Fri Apr 8 18:41:41 2016 +0100

    http_negotiate: Calculate service name and proxy service name locally

    Calculate the service name and proxy service names locally, rather than
    in url.c which will allow for us to support overriding the service name
    for other protocols such as FTP, IMAP, POP3 and SMTP.

commit 560ac54387370f911dba1a1afec6c8ac6015109c
Author: Steve Holme <>
Date:   Fri Apr 8 17:04:25 2016 +0100

    ROADMAP: Updated following the move of the authentication code

commit 5ece26fcaaf2c64e2e022d1974f1597a3f120711
Author: Patrick Monnerat <>
Date:   Fri Apr 8 16:49:49 2016 +0200

    KNOWN_BUGS: openldap hangs. TODO: binary SASL.

commit 415187f6323ec367896dcec51047c251d21b3355
Author: Daniel Stenberg <>
Date:   Fri Apr 8 13:25:20 2016 +0200

    KNOWN_BUGS: 5.6 Improper use of Autoconf cache variables

    Closes #603

commit 8baaf9a842502217da32c71b26b82d43858b9f82
Author: Daniel Stenberg <>
Date:   Fri Apr 8 13:23:28 2016 +0200

    KNOWN_BUGS: 11.2 error buffer not set...

    Closes #544

commit 84b0f05496507a95bcea2dda3cd7199b33b57410
Author: Daniel Stenberg <>
Date:   Fri Apr 8 13:21:52 2016 +0200

    KNOWN_BUGS: 11.1 Curl leaks .onion hostnames in DNS

    Closes #543

commit 732b03554d0cefa26263205c4431b8020a73bb43
Author: Daniel Stenberg <>
Date:   Fri Apr 8 13:03:37 2016 +0200

    KNOWN_BUGS: 1.8 DNS timing is wrong for HTTP redirects

    Closes #522

commit fe8be9caf1e40aef0c639f1c3f4f44679f1c16bf
Author: Daniel Stenberg <>
Date:   Fri Apr 8 10:57:25 2016 +0200

    TODO: HTTP/2 "prior knowledge" is implemented!

commit 60f180f4eb4b627330d68c026358c3601a0d3d11
Author: Damien Vielpeau <>
Date:   Thu Apr 7 15:58:11 2016 +0200

    mbedtls: fix MBEDTLS_DEBUG builds

commit 0243a8d525c4febd8362a11d035eb330d680b9bb
Author: Daniel Stenberg <>
Date:   Thu Apr 7 16:10:10 2016 +0200

    mbedtls: implement and provide *_data_pending()

    ... as otherwise we might get stuck thinking there's no more data to

    Reported-by: Damien Vielpeau

    Fixes #737

commit 1dc0fc76b6b8230387edff92e9e0d9cf8bea4e6d
Author: Daniel Stenberg <>
Date:   Thu Apr 7 15:32:18 2016 +0200

    mbedtls: follow-up for the previous commit

commit b8d6cf8c0b5229a4f750aa3cfc11294707ede04b
Author: Daniel Stenberg <>
Date:   Thu Apr 7 15:19:35 2016 +0200

    mbedtls.c: name space pollution fix, Use 'Curl_'

commit 3623e75684b0491e9422eaf3d645239bb574b36e
Author: Daniel Stenberg <>
Date:   Thu Apr 7 15:16:01 2016 +0200

    mbedtls.c: changed private prefix to mbed_

    mbedtls_ is the prefix used by the mbedTLS library itself so we should
    avoid using that for our private functions.

commit cf4d30bd8b012bf6ca950fe260748f198e53e24d
Author: Daniel Stenberg <>
Date:   Thu Apr 7 15:11:05 2016 +0200

    mbedtls.h: fix compiler warnings

commit 4650701918075dfa98d39c2c01b17438e627d954
Author: Daniel Stenberg <>
Date:   Thu Apr 7 08:06:56 2016 +0200

    Revert "winbuild: trying to set some files eol=crlf for git"

    This reverts commit 9c08b4f1e7eced5a4d3782a3e0daa484c9d77d21.

    Didn't help. Caused problems.

    Fixes #756

commit f560997da191921948823607c8ca3b9a8702c1a2
Author: Daniel Stenberg <>
Date:   Wed Apr 6 14:41:38 2016 +0200

    curl.1: use more

    Make (most) example snippets use the domain instead of the
    random ones picked and used before. Some of those were probably
    legitimate sites and some not. is designed for this purpose.

commit d3848fbc3a8c88d9fa638744ecb391155ba84c5a
Author: Michael Kaufmann <>
Date:   Wed Apr 6 14:08:15 2016 +0200

    HTTP2: Add a space character after the status code

    The space character after the status code is mandatory, even if the
    reason phrase is empty (see RFC 7230 section 3.1.2)

    Closes #755

commit 078a26aeb91fe168582726d040590ee793578703
Author: Viktor Szakats <>
Date:   Wed Apr 6 11:57:48 2016 +0200

    URLs: change http to https in many places

    Closes #754

commit 8f49307ce0d72846b1181155dfe88ec5e6a5f37a
Author: Daniel Stenberg <>
Date:   Wed Apr 6 11:29:36 2016 +0200

    winbuild: trying to set some files eol=crlf for git

    Thinking it might help to apply patches etc with git.

commit 8c2a67f18361a425e3c85628860db945a64af500
Author: Theodore Dubois <>
Date:   Tue Apr 5 14:14:47 2016 -0700

    curl.1: change example for -F

    It's a bad idea to send your passwords anywhere, especially over HTTP.
    Modified example to send a picture instead.

    Fixes #752

commit be23fc54eb1c95439287a00c18e5cc763a9ab17a
Author: Daniel Stenberg <>
Date:   Wed Apr 6 09:20:18 2016 +0200

    KNOWN_BUGS: reorganized and cleaned up

    Now sorted into categories and organized in the same style we do the
    TODO document. It will make each issue linked properly on the web page.

    The sections should make it easier to find issues and issues related to
    areas of the reader's specific interest.

commit d561d4ff14dae5dfad74a939ffd066af36f17fba
Author: Jay Satiro <>
Date:   Wed Apr 6 02:43:13 2016 -0400

    KNOWN_BUGS: #95 curl in Windows can't handle Unicode arguments

commit 22b5897673867088dc800d3e7860cf4c08a4c627
Author: Steve Holme <>
Date:   Wed Apr 6 01:23:02 2016 +0100

    KNOWN_BUGS: Use URL for github based issues

commit 95445548034b34adc4e486a0499920c40b1bb080
Author: Steve Holme <>
Date:   Wed Apr 6 01:00:01 2016 +0100 Corrected some typos

commit 6c11eca7891aa01793f434cb07da219ec428fff0
Author: Steve Holme <>
Date:   Wed Apr 6 00:26:12 2016 +0100

    RELEASE-NOTES: Corrected last updated

    Included a summary of the checksrc.bat updates and combined two krb5
    changes as they should have been implemented at the same time.

commit d337b55a2e8d9e69158af193aa432a38f88a35d5
Author: Steve Holme <>
Date:   Wed Apr 6 00:21:07 2016 +0100

    vauth: Corrected a number of typos in comments

    Reported-by: Michael Osipov

commit 2e3544e7c310a33a16dbe8313a756c4b8f624266
Author: Jay Satiro <>
Date:   Tue Apr 5 18:56:35 2016 -0400

    KNOWN_BUGS: #94 IMAP custom requests use the LIST handler


commit a3949926440ca076bc5ec939f30dd5d12e78b22f
Author: Daniel Stenberg <>
Date:   Tue Apr 5 23:40:37 2016 +0200

    KNOWN_BUGS: remove 68, 70 and 72.

    Due to their age (we don't fully know if they actually remain) and lack
    of detail - very few people will bother to find out what they're about
    or work on them. If people truly still suffer from any of these, I
    assume they will be reported again and then we'll deal with them.

    72. "Pausing pipeline problems."

    70. Problem re-using easy handle after call to curl_multi_remove_handle

    68. "More questions about ares behavior".

commit 688c63928581562b535fc9d985f93456f0a741c5
Author: Daniel Stenberg <>
Date:   Tue Apr 5 23:39:42 2016 +0200

    KNOWN_BUGS: remove 92 and 88, fixed

commit 649411a7f31ae1783ef342127c22698ef300e87c
Author: Daniel Stenberg <>
Date:   Tue Apr 5 20:27:38 2016 +0200

    http2: fix connection reuse when PING comes after last DATA

    It turns out the google GFE HTTP/2 servers send a PING frame immediately
    after a stream ends and its last DATA has been received by curl. So if
    we don't drain that from the socket, it makes the socket readable in
    subsequent checks and libcurl then (wrongly) assumes the connection is
    dead when trying to reuse the connection.

    Reported-by: Joonas Kuorilehto

    Discussed in #750

commit 6bb3a0fdde8e67781c11c75ea676ae35eb91963d
Author: Daniel Stenberg <>
Date:   Tue Apr 5 16:36:45 2016 +0200

    multi: remove trailing space in debug output

commit 9bffcc4b477a4d6e258e1804273238782359f139
Author: Daniel Stenberg <>
Date:   Mon Apr 4 09:01:27 2016 +0200

    RELEASE-NOTES: synced with 86e97b642fb

commit 2b006f818bcc36891eda5b6220e3147eeea87bd7
Author: Daniel Stenberg <>
Date:   Mon Apr 4 08:36:21 2016 +0200 mention cmdline options, fix the bullet list

commit 949afeb32a2d09aecde8d2b1230fd6ba3c297a2e
Author: Daniel Stenberg <>
Date:   Mon Apr 4 00:11:32 2016 +0200

    docs/ initial version

commit 1206a7d4d4fd67ee864af766288aa0295f3268bc
Author: Steve Holme <>
Date:   Sun Apr 3 22:09:07 2016 +0100

    checksrc.bat: Added support for the examples

commit ab98ca73281e13e84bf7ca4e9e99cbe7e414029e
Author: Daniel Stenberg <>
Date:   Sun Apr 3 23:06:44 2016 +0200

    lib/src: fix the checksrc invoke

    ... now works correctly when invoke from the root makefile

commit 842ea278f4ecee6886ec5aa545ac30eb22b02ff5
Author: Daniel Stenberg <>
Date:   Sun Apr 3 23:06:23 2016 +0200

    nw: please the stric…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment