summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cookie: fix memory leak if path was set twice in headerbagder/cookie-leak-path-twiceDaniel Stenberg2017-09-303-1/+56
| | | | | | | ... this will let the second occurance override the first. Reported-by: Max Dymond Fixes #1932
* test650: Use variable replacement to set the host address and portDan Fandrich2017-09-301-1/+1
| | | | | Otherwise, the test fails when the -b test option is used to set a different test port range.
* Set and use more necessary options when some protocols are disabledDan Fandrich2017-09-303-34/+40
| | | | | | | | | | | | When curl and libcurl are built with some protocols disabled, they stop setting and receiving some options that don't make sense with those protocols. In particular, when HTTP is disabled many options aren't set that are used only by HTTP. However, some options that appear to be HTTP-only are actually used by other protocols as well (some despite having HTTP in the name) and should be set, but weren't. This change now causes some of these options to be set and used for more (or for all) protocols. In particular, this fixes tests 646 through 649 in an HTTP-disabled build, which use the MIME API in the mail protocols.
* test1160: verifies cookie leak for large cookiesDaniel Stenberg2017-09-292-0/+50
| | | | The fix done in 20ea22ff735
* cookie: fix memory leak on oversized rejectionDaniel Stenberg2017-09-291-1/+1
| | | | | | | | | Regression brought by 2bc230de63b Detected by OSS-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3513 Assisted-by: Max Dymond Closes #1930
* connect: fix race condition with happy eyeballs timeoutAnders Bakken2017-09-291-1/+1
| | | | | | | | | | | The timer should be started after conn->connecttime is set. Otherwise the timer could expire without this condition being true: /* should we try another protocol family? */ if(i == 0 && conn->tempaddr[1] == NULL && curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) { Ref: #1928
* docs: link CURLOPT_CONNECTTIMEOUT and CURLOPT_CONNECTTIMEOUT_MSMichael Kaufmann2017-09-282-0/+8
| | | | Closes #1922
* docs: clarify the use of environment variables for proxyMichael Kaufmann2017-09-282-1/+7
| | | | Closes #1921
* http: add custom empty headers to repeated requestsMichael Kaufmann2017-09-282-3/+15
| | | | Closes #1920
* reuse_conn: don't copy flags that are known to be equalMichael Kaufmann2017-09-281-2/+0
| | | | | | | | A connection can only be reused if the flags "conn_to_host" and "conn_to_port" match. Therefore it is not necessary to copy these flags in reuse_conn(). Closes #1918
* curl.h: include <sys/select.h> on cygwin tooDaniel Stenberg2017-09-271-0/+1
| | | | | | | | | | | When building with -std=c++14 on cygwin, this header won't be automatically included as it otherwise is. The <sys/select.h> include decision should ideally be reversed and be avoided where that header file doesn't exist. Reported-by: Ian Fette Fixes #1925
* RELEASE-NOTES: synced with d8ab5dc50Daniel Stenberg2017-09-251-10/+21
|
* tests: adjust .gitignore for new testsMichael Kaufmann2017-09-241-0/+3
|
* ntlm: move NTLM_NEEDS_NSS_INIT define into core NTLM headerJay Satiro2017-09-235-9/+12
| | | | | | | | | .. and include the core NTLM header in all NTLM-related source files. Follow up to 6f86022. Since then http_ntlm checks NTLM_NEEDS_NSS_INIT but did not include vtls.h where it was defined. Closes https://github.com/curl/curl/pull/1911
* file_range: avoid integer overflow when figuring out byte rangeDaniel Stenberg2017-09-231-0/+3
| | | | | | | | | | | When trying to bump the value with one and the value is already at max, it causes an integer overflow. Closes #1908 Detected by oss-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3465 Assisted-by: Max Dymond
* tests: fix a compiler warning in test 643Michael Kaufmann2017-09-231-4/+4
|
* symbols-in-versions: fix CURLSSLSET_NO_BACKENDS entryJay Satiro2017-09-231-1/+1
| | | | | | | - Use spaces instead of tabs as the delimiter. Follow up to 7c52b12 which added the entry. The entry had used tabs but the symbol-scan parser doesn't recognize tabs and would fail the symbol.
* metalink: fix NSS issue in MultiSSL buildsViktor Szakats2017-09-221-1/+4
| | | | | | | | | | | | | | | | In MultiSSL mode (i.e. when more than one SSL backend is compiled in), we cannot use the compile time flag `USE_NSS` as indicator that the NSS backend is in use. As far as Metalink is concerned, the SSL backend is only used for MD5, SHA-1 and SHA-256 calculations, therefore one of the available SSL backends is selected at compile time, in a strict order of preference. Let's introduce a new `HAVE_NSS_CONTEXT` constant that can be used to determine whether the SSL backend used for Metalink is the NSS backend, and use that to guard the code that wants to de-initialize the NSS-specific data structure. Ref: https://github.com/curl/curl/pull/1848
* ntlm: use strict order for SSL backend #if branchesViktor Szakats2017-09-224-36/+73
| | | | | | | | | | | | | | | | | | | With the recently introduced MultiSSL support multiple SSL backends can be compiled into cURL That means that now the order of the SSL One option would be to use the same SSL backend as was configured via `curl_global_sslset()`, however, NTLMv2 support would appear to be available only with some SSL backends. For example, when eb88d778e (ntlm: Use Windows Crypt API, 2014-12-02) introduced support for NTLMv1 using Windows' Crypt API, it specifically did *not* introduce NTLMv2 support using Crypt API at the same time. So let's select one specific SSL backend for NTLM support when compiled with multiple SSL backends, using a priority order such that we support NTLMv2 even if only one compiled-in SSL backend can be used for that. Ref: https://github.com/curl/curl/pull/1848
* symbols-in-versions: add CURLSSLSET_NO_BACKENDSDaniel Stenberg2017-09-221-1/+2
| | | | ...fixup from b8e0fe19ec
* imap: quote atoms properly when escaping charactersDaniel Stenberg2017-09-222-4/+4
| | | | | | | Updates test 800 to verify Fixes #1902 Closes #1903
* tests: make the imap server not verify user+passwordDaniel Stenberg2017-09-223-14/+8
| | | | | | | | | | | ... as the test cases themselves do that and it makes it easier to add crazy test cases. Test 800 updated to use user name + password that need quoting. Test 856 updated to trigger an auth fail differently. Ref: #1902
* vtls: provide curl_global_sslset() even in non-SSL buildsDaniel Stenberg2017-09-223-4/+18
| | | | | | | | | ... it just returns error: Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367 Reported-by: Marcel Raad Closes #1906
* form/mime: field names are not allowed to contain zero-valued bytes.Patrick Monnerat2017-09-2221-102/+94
| | | | | Also suppress length argument of curl_mime_name() (names are always zero-terminated).
* openssl: only verify RSA private key if supportedDirk Feytons2017-09-211-6/+22
| | | | | | | | | In some cases the RSA key does not support verifying it because it's located on a smart card, an engine wants to hide it, ... Check the flags on the key before trying to verify it. OpenSSL does the same thing internally; see ssl/ssl_rsa.c Closes #1904
* examples/post-callback: use long for CURLOPT_POSTFIELDSIZEMarcel Raad2017-09-211-1/+1
| | | | Otherwise, typecheck-gcc.h warns on MinGW-w64.
* mime: rephrase the multipart output state machine (#1898) ...Patrick Monnerat2017-09-201-2/+5
| | | | ... in hope coverity will like it much.
* mime: fix an explicit null dereference (#1899)Patrick Monnerat2017-09-201-2/+2
|
* curl: check fseek() return code and bail on errorDaniel Stenberg2017-09-201-2/+10
| | | | Detected by coverity. CID 1418137.
* smtp: fix memory leak in OOMDaniel Stenberg2017-09-201-1/+4
| | | | | | | Regression since ce0881edee Coverity CID 1418139 and CID 1418136 found it, but it was also seen in torture testing.
* RELEASE-NOTES: synced with 5fe85587cDaniel Stenberg2017-09-201-9/+36
|
* cookies: use lock when using CURLINFO_COOKIELISTPavel P2017-09-192-8/+19
| | | | Closes #1896
* ossfuzz: changes before merging the generated corporaMax Dymond2017-09-185-50/+179
| | | | | | | | | | | | | Before merging in the oss-fuzz corpora from Google, there are some changes to the fuzzer. - Add a read corpus script, to display corpus files nicely. - Change the behaviour of the fuzzer so that TLV parse failures all now go down the same execution paths, which should reduce the size of the corpora. - Make unknown TLVs a failure to parse, which should decrease the size of the corpora as well. Closes #1881
* mime:escape_string minor clarification changeDaniel Stenberg2017-09-181-2/+5
| | | | | | | ... as it also removes a warning with old gcc versions. Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html Reported-by: Ben Greear
* ossfuzz: don't write out to stdoutMax Dymond2017-09-182-0/+40
| | | | | | | | Don't make the fuzzer write out to stdout - instead write some of the contents to a memory block so we exercise the data output code but quietly. Closes #1885
* cookies: reject oversized cookiesDaniel Stenberg2017-09-185-14/+96
| | | | | | | | | | | | | | | | | | ... instead of truncating them. There's no fixed limit for acceptable cookie names in RFC 6265, but the entire cookie is said to be less than 4096 bytes (section 6.1). This is also what browsers seem to implement. We now allow max 5000 bytes cookie header. Max 4095 bytes length per cookie name and value. Name + value together may not exceed 4096 bytes. Added test 1151 to verify Bug: https://curl.haxx.se/mail/lib-2017-09/0062.html Reported-by: Kevin Smith Closes #1894
* travis: on mac, don't install openssl or libidnDaniel Stenberg2017-09-181-1/+1
| | | | | | | | | | - openssl is already installed and causes warnings when trying to install again - libidn isn't used these days, and homebrew doesn't seem to have a libidn2 package to replace with easily Closes #1895
* curl: make str2udouble not return values on errorDaniel Stenberg2017-09-181-3/+5
| | | | | | | | ... previously it would store a return value even when it returned error, which could make the value get used anyway! Reported-by: Brian Carpenter Closes #1893
* socks: fix incorrect port number in SOCKS4 error messageJay Satiro2017-09-181-4/+4
| | | | | | | | | Prior to this change it appears the SOCKS5 port parsing was erroneously used for the SOCKS4 error message, and as a result an incorrect port would be shown in the error message. Bug: https://github.com/curl/curl/issues/1892 Reported-by: Jackarain@users.noreply.github.com
* schannel: Support partial send for when data is too largeMarc Aldorasi2017-09-161-2/+1
| | | | | | | | | | Schannel can only encrypt a certain amount of data at once. Instead of failing when too much data is to be sent at once, send as much data as we can and let the caller send the remaining data by calling send again. Bug: https://curl.haxx.se/mail/lib-2014-07/0033.html Closes https://github.com/curl/curl/pull/1890
* openssl: add missing includesDavid Benjamin2017-09-161-0/+2
| | | | | | | | lib/vtls/openssl.c uses OpenSSL APIs from BUF_MEM and BIO APIs. Include their headers directly rather than relying on other OpenSSL headers including things. Closes https://github.com/curl/curl/pull/1891
* conversions: fix several compiler warningsDaniel Stenberg2017-09-152-14/+16
|
* server/getpart: provide dummy function to build conversion enabledDaniel Stenberg2017-09-151-1/+29
|
* non-ascii: use iconv() with 'char **' argumentDaniel Stenberg2017-09-151-3/+3
| | | | Bug: https://curl.haxx.se/mail/lib-2017-09/0031.html
* escape.c: error: pointer targets differ in signednessDaniel Stenberg2017-09-151-2/+2
|
* docs: clarify the CURLOPT_INTERLEAVE* options behaviorDaniel Stenberg2017-09-152-5/+10
|
* rtsp: Segfault in rtsp.c when using WRITEDATAMax Dymond2017-09-151-9/+14
| | | | | | | | | If the INTERLEAVEFUNCTION is defined, then use that plus the INTERLEAVEDATA information when writing RTP. Otherwise, use WRITEFUNCTION and WRITEDATA. Fixes #1880 Closes #1884
* tests: enable gssapi in travis-ci linux buildIsaac Boukris2017-09-151-1/+2
| | | | Closes https://github.com/curl/curl/pull/1687
* tests: add initial gssapi test using stub implementationIsaac Boukris2017-09-1510-2/+825
| | | | | | | | | | | The stub implementation is pre-loaded using LD_PRELOAD and emulates common gssapi uses (only builds if curl is initially built with gssapi support). The initial tests are currently disabled for debug builds as LD_PRELOAD is not used then. Ref: https://github.com/curl/curl/pull/1687
* test1150: verify same host fetch using different ports over proxyDaniel Stenberg2017-09-152-1/+57
| | | | Closes #1889