summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* schannel: client certificate store opening fixIhor Karpenko2018-08-241-5/+8
| | | | | | | | | | | | | | | | | | | 1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG ) while opening certificate store would be sufficient in this scenario and less-demanding in sense of required user credentials ( for example, IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore call without any of flags mentioned above ), 2) as 'cert_store_name' is a DWORD, attempt to format its value like a string ( in "Failed to open cert store" error message ) will throw null pointer exception 3) adding GetLastError(), in my opinion, will make error message more useful. Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html Closes #2909
* gopher: Do not translate `?' to `%09'Leonardo Taccari2018-08-241-7/+0
| | | | | | | | | | | | | Since GOPHER support was added in curl `?' character was automatically translated to `%09' (`\t'). However, this behaviour does not seems documented in RFC 4266 and for search selectors it is documented to directly use `%09' in the URL. Apart that several gopher servers in the current gopherspace have CGI support where `?' is used as part of the selector and translating it to `%09' often leads to surprising results. Closes #2910
* http2: abort the send_callback if not setup yetDaniel Stenberg2018-08-221-0/+4
| | | | | | | | When Curl_http2_done() gets called before the http2 data is setup all the way, we cannot send anything and this should just return an error. Detected by OSS-Fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
* http2: remove four unused nghttp2 callbacksDaniel Stenberg2018-08-211-77/+0
| | | | Closes #2903
* x509asn1: use FALLTHROUGHDaniel Stenberg2018-08-211-2/+2
| | | | ... as no other comments are accepted since 014ed7c22f51463
* curl-compilers: enable -Wimplicit-fallthrough=4 for GCCMarcel Raad2018-08-215-7/+8
| | | | | | | | This enables level 4 instead of the default level 3, which of the currently used comments only allows /* FALLTHROUGH */ to silence the warning. Closes https://github.com/curl/curl/pull/2747
* Remove unused definitionsMarcel Raad2018-08-211-1/+0
| | | | Closes https://github.com/curl/curl/pull/2747
* x509asn1: make several functions staticDaniel Stenberg2018-08-211-63/+59
| | | | | | and remove the private SIZE_T_MAX define and use the generic one. Closes #2902
* http2: avoid set_stream_user_data() before stream is assignedDaniel Stenberg2018-08-211-1/+2
| | | | | | | ... before the stream is started, we have it set to -1. Fixes #2894 Closes #2898
* upload: change default UPLOAD_BUFSIZE to 64KBDaniel Stenberg2018-08-182-3/+8
| | | | | | | To make uploads significantly faster in some circumstances. Part 2 of #2888 Closes #2892
* upload: allocate upload buffer on-demandDaniel Stenberg2018-08-187-24/+59
| | | | | | | Saves 16KB on the easy handle for operations that don't need that buffer. Part 1 of #2888
* vtls: reinstantiate engine on duplicated handlesLaurent Bonnans2018-08-183-2/+15
| | | | | | | | | | | | Handles created with curl_easy_duphandle do not use the SSL engine set up in the original handle. This fixes the issue by storing the engine name in the internal url state and setting the engine from its name inside curl_easy_duphandle. Reported-by: Anton Gerasimov Signed-of-by: Laurent Bonnans Fixes #2829 Closes #2833
* http2: make sure to send after RST_STREAMDaniel Stenberg2018-08-171-2/+7
| | | | | | | | | If this is the last stream on this connection, the RST_STREAM might not get pushed to the wire otherwise. Fixes #2882 Closes #2887 Researched-by: Michael Kaufmann
* urldata: remove unused pipe_broke struct fieldDaniel Stenberg2018-08-162-28/+3
| | | | | | | This struct field is never set TRUE in any existing code path. This change removes the field completely. Closes #2871
* http2: check nghttp2_session_set_stream_user_data return codeDaniel Stenberg2018-08-151-7/+32
| | | | | | Might help bug #2688 debugging Closes #2880
* CMake: CMake config files are defining CURL_STATICLIB for static buildsAdrien2018-08-151-0/+4
| | | | | | | | | | | | This change allows to use the CMake config files generated by Curl's CMake scripts for static builds of the library. The symbol CURL_STATIC lib must be defined to compile downstream, thus the config package is the perfect place to do so. Fixes #2817 Closes #2823 Reported-by: adnn on github Reviewed-by: Sergei Nikulov
* ssh-libssh: fix infinite connect loop on invalid private keyKamil Dudka2018-08-141-0/+1
| | | | | | | | Added test 656 (based on test 604) to verify the fix. Bug: https://bugzilla.redhat.com/1595135 Closes #2879
* ssh-libssh: reduce excessive verbose output about pubkey authKamil Dudka2018-08-141-2/+1
| | | | | | | | | | The verbose message "Authentication using SSH public key file" was printed each time the ssh_userauth_publickey_auto() was called, which meant each time a packet was transferred over network because the API operates in non-blocking mode. This patch makes sure that the verbose message is printed just once (when the authentication state is entered by the SSH state machine).
* http: fix for tiny "HTTP/0.9" responseDaniel Stenberg2018-08-135-39/+57
| | | | | | | | | | | Deal with tiny "HTTP/0.9" (header-less) responses by checking the status-line early, even before a full "HTTP/" is received to allow detecting 0.9 properly. Test 1266 and 1267 added to verify. Fixes #2420 Closes #2872
* GCC: silence -Wcast-function-type uniformlyMarcel Raad2018-08-111-16/+22
| | | | | Pointed-out-by: Rikard Falkeborn Closes https://github.com/curl/curl/pull/2860
* Silence GCC 8 cast-function-type warningsMarcel Raad2018-08-114-3/+13
| | | | | | | | | | On Windows, casting between unrelated function types is fine and sometimes even necessary, so just use an intermediate cast to (void (*) (void)) to silence the warning as described in [0]. [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html Closes https://github.com/curl/curl/pull/2860
* CURLINFO_SIZE_UPLOAD: fix missing counter updateDaniel Stenberg2018-08-111-0/+2
| | | | | | | | Adds test 1522 for verification. Reported-by: cjmsoregan Fixes #2847 Closes #2864
* openssl: fix potential NULL pointer deref in is_pkcs11_uriDaniel Stenberg2018-08-101-6/+1
| | | | | Follow-up to 298d2565e Coverity CID 1438387
* asyn-thread: Remove unused macroRikard Falkeborn2018-08-091-2/+0
| | | | | | The macro seems to never have been used. Closes #2852
* http_proxy: Remove unused macro SELECT_TIMEOUTRikard Falkeborn2018-08-091-1/+0
| | | | | | Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22. Closes #2852
* formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULTRikard Falkeborn2018-08-091-4/+0
| | | | | | | Its usage was removed in 84ad1fd3047815f9c6e78728bb351b828eac10b1. Closes #2852
* telnet: Remove unused macros TELOPTS and TELCMDSRikard Falkeborn2018-08-091-4/+0
| | | | | | Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51. Closes #2852
* openssl: fix debug messagesDaniel Jelinski2018-08-091-1/+9
| | | | | Fixes #2806 Closes #2843
* windows: follow up to the buffer-tuning 1ba1dba7Daniel Stenberg2018-08-081-1/+5
| | | | | | | Somehow I didn't include the amended version of the previous fix. This is the missing piece. Pointed-out-by: Viktor Szakats
* windows: implement send buffer tuningDaniel Jelinski2018-08-081-1/+18
| | | | | | | | Significantly enhances upload performance on modern Windows versions. Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html Closes #2762 Fixes #2224
* ssl: set engine implicitly when a PKCS#11 URI is providedAnderson Toshiyuki Sasaki2018-08-081-0/+38
| | | | | | | | | | | This allows the use of PKCS#11 URI for certificates and keys without setting the corresponding type as "ENG" and the engine as "pkcs11" explicitly. If a PKCS#11 URI is provided for certificate, key, proxy_certificate or proxy_key, the corresponding type is set as "ENG" if not provided and the engine is set to "pkcs11" if not provided. Acked-by: Nikos Mavrogiannopoulos Closes #2333
* CMake: Respect BUILD_SHARED_LIBSRuslan Baratov2018-08-081-11/+10
| | | | | | | | | | Use standard CMake variable BUILD_SHARED_LIBS instead of introducing custom option CURL_STATICLIB. Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml. Reviewed-by: Sergei Nikulov Closes #2755
* lib/Makefile: only do symbol hiding if told toDaniel Stenberg2018-08-031-0/+3
| | | | | | | | | | This restores the ability to build a static lib with --disable-symbol-hiding to keep non-curl_ symbols. Researched-by: Dan Fandrich Reported-by: Ran Mozes Fixes #2830 Closes #2831
* hostip: fix unused variable warningMarcel Raad2018-08-021-0/+4
| | | | | addresses is only used in an infof call, which is a macro expanding to nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
* smb: don't mark it done in smb_doDaniel Stenberg2018-08-011-1/+1
| | | | | | | | Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its doing function too, which requires smb_do() to not mark itself as done... Closes #2822
* general: fix printf specifiersRikard Falkeborn2018-08-011-1/+1
| | | | Closes #2818
* HTTP: Don't attempt to needlessly decompress redirect bodyHarry Sintonen2018-07-311-1/+1
| | | | | | | | | | | | This change fixes a regression where redirect body would needlessly be decompressed even though it was to be ignored anyway. As it happens this causes secondary issues since there appears to be a bug in apache2 that it in certain conditions generates a corrupt zlib response. The regression was created by commit: dbcced8e32b50c068ac297106f0502ee200a1ebd Discovered-by: Harry Sintonen Closes #2798
* retry: return error if rewind was necessary but didn't happenDaniel Jelinski2018-07-311-0/+2
| | | | | Fixes #2801 Closes #2812
* http2: clear the drain counter in Curl_http2_doneDaniel Stenberg2018-07-301-13/+30
| | | | | | Reported-by: Andrei Virtosu Fixes #2800 Closes #2809
* smb: fix memory leak on early failureDaniel Stenberg2018-07-302-33/+37
| | | | | | | | | | ... by making sure connection related data (->share) is stored in the connection and not in the easy handle. Detected by OSS-fuzz Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369 Fixes #2769 Closes #2810
* conn_free: updated comment to clarifyDaniel Stenberg2018-07-281-1/+1
| | | | | Let's call it disassociate instead of disconnect since the latter term is used so much for (TCP) connections already.
* mime: check Curl_rand_hex's return codeDaniel Stenberg2018-07-281-2/+7
| | | | | | Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html Reported-by: Jeffrey Walton Closes #2795
* wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_randomCarie Pointer2018-07-261-0/+2
| | | | | | | | RNG structure must be freed by call to FreeRng after its use in Curl_cyassl_random. This call fixes Valgrind failures when running the test suite with wolfSSL. Closes #2784
* reuse_conn(): free old_conn->optionsEven Rouault2018-07-261-0/+1
| | | | | | | | | | | | This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with connection reuse. I found this with oss-fuzz on GDAL and curl master: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582 I couldn't reproduce with the oss-fuzz original test case, but looking at curl source code pointed to this well reproducable leak. Closes #2790
* system_win32: fix version checkingdjelinski2018-07-251-4/+6
| | | | | | | In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false when run on windows 10.0. This patch addresses that error. Closes https://github.com/curl/curl/pull/2792
* auth: pick Bearer authentication whenever a token is availableJohannes Schindelin2018-07-241-1/+1
| | | | | | | | | So far, the code tries to pick an authentication method only if user/password credentials are available, which is not the case for Bearer authentictation... Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Closes #2754
* auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer tokenJohannes Schindelin2018-07-241-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | The Bearer authentication was added to cURL 7.61.0, but there is a problem: if CURLAUTH_ANY is selected, and the server supports multiple authentication methods including the Bearer method, we strongly prefer that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer authentication fails, we will never even try to attempt any other method. This is particularly unfortunate when we already know that we do not have any Bearer token to work with. Such a scenario happens e.g. when using Git to push to Visual Studio Team Services (which supports Basic and Bearer authentication among other methods) and specifying the Personal Access Token directly in the URL (this aproach is frequently taken by automated builds). Let's make sure that we have a Bearer token to work with before we select the Bearer authentication among the available authentication methods. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Closes #2754
* vtls: set conn->data when closing TLSDaniel Stenberg2018-07-222-1/+4
| | | | | | | | | Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS layer for a connection still needs a Curl_easy handle for the session_id cache etc. Fixes #2764 Closes #2771
* http2: several cleanupsDaniel Stenberg2018-07-207-70/+43
| | | | | | | | - separate easy handle from connections better - added asserts on a number of places - added sanity check of pipelines for debug builds Closes #2751
* smb_getsock: always wait for write socket tooDaniel Stenberg2018-07-201-7/+1
| | | | | | | | | | | ... the protocol is doing read/write a lot, so it needs to write often even when downloading. A more proper fix could check for eactly when it wants to write and only ask for it then. Without this fix, an SMB download could easily get stuck when the event-driven API was used. Closes #2768