aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2014-09-10openssl: build fix for versions < 0.9.8ePaul Howarth
Bug: http://curl.haxx.se/mail/lib-2014-09/0064.html
2014-09-10mk-ca-bundle.pl: first, try downloading HTTPS with curlDaniel Stenberg
As a sort of step forward, this script will now first try to get the data from the HTTPS URL using curl, and only if that fails it will switch back to the HTTP transfer using perl's native LWP functionality. To reduce the risk of this script being tricked. Using HTTPS to get a cert bundle introduces a chicken-and-egg problem so we can't really ever completely disable HTTP, but chances are that most users already have a ca cert bundle that trusts the mozilla.org site that this script downloads from. A future version of this script will probably switch to require a dedicated "insecure" command line option to allow downloading over HTTP (or unverified HTTPS).
2014-09-10cookies: reject incoming cookies set for TLDsDaniel Stenberg
Test 61 was modified to verify this. CVE-2014-3620 Reported-by: Tim Ruehsen URL: http://curl.haxx.se/docs/adv_20140910B.html
2014-09-10cookies: only use full host matches for hosts used as IP addressTim Ruehsen
By not detecting and rejecting domain names for partial literal IP addresses properly when parsing received HTTP cookies, libcurl can be fooled to both send cookies to wrong sites and to allow arbitrary sites to set cookies for others. CVE-2014-3613 Bug: http://curl.haxx.se/docs/adv_20140910A.html
2014-09-08polarassl: avoid memset() when clearing the first byte is enoughDaniel Stenberg
2014-09-08polarssl: support CURLOPT_CAPATH / --capathCatalin Patulea
Signed-off-by: Catalin Patulea <cat@vv.carleton.ca>
2014-09-07Ensure progress.size_dl/progress.size_ul are always >= 0Brandon Casey
Historically the default "unknown" value for progress.size_dl and progress.size_ul has been zero, since these values are initialized implicitly by the calloc that allocates the curl handle that these variables are a part of. Users of curl that install progress callbacks may expect these values to always be >= 0. Currently it is possible for progress.size_dl and progress.size_ul to by set to a value of -1, if Curl_pgrsSetDownloadSize() or Curl_pgrsSetUploadSize() are passed a "size" of -1 (which a few places currently do, and a following patch will add more). So lets update Curl_pgrsSetDownloadSize() and Curl_pgrsSetUploadSize() so they make sure that these variables always contain a value that is >= 0. Updates test579 and test599. Signed-off-by: Brandon Casey <drafnel@gmail.com>
2014-09-07multi.c: Avoid invalid memory read after free() from commit 3c8c873252Steve Holme
As the current element in the list is free()d by Curl_llist_remove(), when the associated connection is pending, reworked the loop to avoid accessing the next element through e->next afterward.
2014-09-07multi.c: Fixed compilation warning from commit 3c8c873252Steve Holme
warning: implicit conversion from enumeration type 'CURLMcode' to different enumeration type 'CURLcode'
2014-09-06url.c: Use CURLAUTH_NONE constant rather than 0Steve Holme
Small follow up to commit 898808fa8c to use auth constants rather than hard code value when clearing picked authentication mechanism.
2014-09-04darwinssl: Use CopyCertSubject() to check CA cert.Vilmos Nebehaj
SecCertificateCopyPublicKey() is not available on iPhone. Use CopyCertSubject() instead to see if the certificate returned by SecCertificateCreateWithData() is valid. Reported-by: Toby Peterson
2014-09-02curl_multi_cleanup: remove superfluous NULL assignsDaniel Stenberg
... as the struct is free()d in the end anyway. It was first pointed out to me that one of the ->msglist assignments were supposed to have been ->pending but was a copy and paste mistake when I realized none of the clearing of pointers had to be there.
2014-09-02multi: convert CURLM_STATE_CONNECT_PEND handling to a listDaniel Stenberg
... instead of scanning through all handles, stash only the actual handles that are in that state in the new ->pending list and scan that list only. It should be mostly empty or very short. And only used for pipelining. This avoids a rather hefty slow-down especially notable if you add many handles to the same multi handle. Regression introduced in commit 0f147887 (version 7.30.0). Bug: http://curl.haxx.se/mail/lib-2014-07/0206.html Reported-by: David Meyer
2014-09-01polarssl: implement CURLOPT_SSLVERSIONAndre Heinecke
Forwards the setting as minimum ssl version (if set) to polarssl. If the server does not support the requested version the SSL Handshake will fail. Bug: http://curl.haxx.se/bug/view.cgi?id=1419
2014-09-01Merge pull request #115 from ldx/darwinsslfixprnickzman
darwinssl: now accepts cacert bundles in PEM format in addition to single certs
2014-09-01Check CA certificate in curl_darwinssl.c.Vilmos Nebehaj
SecCertificateCreateWithData() returns a non-NULL SecCertificateRef even if the buffer holds an invalid or corrupt certificate. Call SecCertificateCopyPublicKey() to make sure cacert is a valid certificate.
2014-08-31low-speed-limit: avoid timeout floodDaniel Stenberg
Introducing Curl_expire_latest(). To be used when we the code flow only wants to get called at a later time that is "no later than X" so that something can be checked (and another timeout be added). The low-speed logic for example could easily be made to set very many expire timeouts if it would be called faster or sooner than what it had set its own timer and this goes for a few other timers too that aren't explictiy checked for timer expiration in the code. If there's no condition the code that says if(time-passed >= TIME), then Curl_expire_latest() is preferred to Curl_expire(). If there exists such a condition, it is on the other hand important that Curl_expire() is used and not the other. Bug: http://curl.haxx.se/mail/lib-2014-06/0235.html Reported-by: Florian Weimer
2014-08-31resolve: cache lookup for async resolversMichael Wallner
While waiting for a host resolve, check if the host cache may have gotten the name already (by someone else), for when the same name is resolved by several simultanoues requests. The resolver thread occasionally gets stuck in getaddrinfo() when the DNS or anything else is crappy or slow, so when a host is found in the DNS cache, leave the thread alone and let itself cleanup the mess.
2014-08-30Fix CA certificate bundle handling in darwinssl.Vilmos Nebehaj
If the --cacert option is used with a CA certificate bundle that contains multiple CA certificates, iterate through it, adding each certificate as a trusted root CA.
2014-08-26Compile with latest nghttp2Tatsuhiro Tsujikawa
2014-08-25CONNECT: close proxy connections that fail to CONNECTDaniel Stenberg
This is usually due to failed auth. There's no point in us keeping such a connection alive since it shouldn't be re-used anyway. Bug: http://curl.haxx.se/bug/view.cgi?id=1381 Reported-by: Marcel Raad
2014-08-25Cmake: Possibility to use OpenLDAP, OpenSSL, LibSSH2 on windowsJakub Zakrzewski
At this point I can build libcurl on windows. It provides at least the same list of protocols as for linux build and works with our software.
2014-08-25Cmake: LibSSH2 detection and use.Jakub Zakrzewski
2014-08-25Cmake: Made boolean defines be defined to "1" instead of "ON"Jakub Zakrzewski
It's by convention, for compatibility and because the comments say so. Just mabe someone have written a test like "#if HAVE_XX==1"
2014-08-25disconnect: don't touch easy-related state on disconnectsDaniel Stenberg
This was done to make sure NTLM state that is bound to a connection doesn't survive and gets used for the subsequent request - but disconnects can also be done to for example make room in the connection cache and thus that connection is not strictly related to the easy handle's current operation. The http authentication state is still kept in the easy handle since all http auth _except_ NTLM is connection independent and thus survive over multiple connections. Bug: http://curl.haxx.se/mail/lib-2014-08/0148.html Reported-by: Paras S
2014-08-22sasl: Fixed a memory leak on OOMDan Fandrich
2014-08-22NTLM: ignore CURLOPT_FORBID_REUSE during NTLM HTTP authFrank Meier
Problem: if CURLOPT_FORBID_REUSE is set, requests using NTLM failed since NTLM requires multiple requests that re-use the same connection for the authentication to work Solution: Ignore the forbid reuse flag in case the NTLM authentication handshake is in progress, according to the NTLM state flag. Fixed known bug #77.
2014-08-22openssl.c: Fixed longer than 79 columnsSteve Holme
2014-08-21openssl.c: Fixed compilation warningSteve Holme
warning: declaration of 'minor' shadows a global declaration
2014-08-21win32: Fixed WinSock 2 #ifHaris Okanovic
A conditionally compiled block in connect.c references WinSock 2 symbols, but used `#ifdef HAVE_WINSOCK_H` instead of `#ifdef HAVE_WINSOCK2_H`. Bug: http://curl.haxx.se/mail/lib-2014-08/0155.html
2014-08-20Curl_disconnect: don't free the URLDaniel Stenberg
The URL is not a property of the connection so it should not be freed in the connection disconnect but in the Curl_close() that frees the easy handle. Bug: http://curl.haxx.se/mail/lib-2014-08/0148.html Reported-by: Paras S
2014-08-17sasl_sspi: Fixed a memory leak with the GSSAPI base-64 decoded challengeSteve Holme
2014-08-17sasl_sspi: Renamed GSSAPI mutual authentication parameterSteve Holme
...From "mutual" to "mutual_auth" which better describes what it is.
2014-08-17sasl_sspi: Corrected some of the GSSAPI security message error codesSteve Holme
Corrected a number of the error codes that can be returned from the Curl_sasl_create_gssapi_security_message() function when things go wrong. It makes more sense to return CURLE_BAD_CONTENT_ENCODING when the inbound security challenge can't be decoded correctly or doesn't contain the KERB_WRAP_NO_ENCRYPT flag and CURLE_OUT_OF_MEMORY when EncryptMessage() fails. Unfortunately the previous error code of CURLE_RECV_ERROR was a copy and paste mistakes on my part and should have been correct in commit 4b491c675f :(
2014-08-16sasl_sspi: Tell the server we don't support a GSSAPI receive bufferSteve Holme
2014-08-15smtp: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPISteve Holme
2014-08-15pop3: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPISteve Holme
2014-08-15imap: Added support for GSSAPI (Kerberos V5) authentication via Windows SSPISteve Holme
2014-08-15email: Added mutual authentication flagSteve Holme
2014-08-15http: fix the Content-Range: parserDaniel Stenberg
... to handle "*/[total]". Also, removed the strange hack that made CURLOPT_FAILONERROR on a 416 response after a *RESUME_FROM return CURLE_OK. Reported-by: Dimitrios Siganos Bug: http://curl.haxx.se/mail/lib-2014-06/0221.html
2014-08-14email: Introduced the GSSAPI statesSteve Holme
2014-08-14curl_sasl_sspi.c: Fixed more compilation warnings from commit 4b491c675fSteve Holme
warning: unused variable 'resp' warning: no previous prototype for 'Curl_sasl_gssapi_cleanup'
2014-08-14SHA-1: 61c93383b7f6cf79d12ff99e9dced1d1cc2a7064Steve Holme
* curl_sasl_sspi.c: Fixed compilation warning from commit 4b491c675f warning: declaration of 'result' shadows a previous local
2014-08-14curl_sasl.h: Fixed compilation error from commit 4b491c675fSteve Holme
warning: 'struct kerberos5data' declared inside parameter list Due to missing forward declaration.
2014-08-14urldata.h: Fixed compilation warnings from commit 3ec253532eSteve Holme
warning: extra tokens at end of #endif directive
2014-08-14sasl_sspi: Added GSSAPI message functionsSteve Holme
2014-08-14urldata: Introduced a GSSAPI (Kerberos V5) data structureSteve Holme
Added a kerberos5data structure which is similar in nature to the ntlmdata and negotiatedata structures.
2014-08-14sspi: Moved KERB_WRAP_NO_ENCRYPT from socks_sspi moduleSteve Holme
In preparation for the upcoming SSPI implementation of GSSAPI authentication, moved the definition of KERB_WRAP_NO_ENCRYPT from socks_sspi.c to curl_sspi.h allowing it to be shared amongst other SSPI based code.
2014-08-13mk-ca-bundle.pl: add missing $Daniel Stenberg
2014-08-13mk-ca-bundle.pl: switched to using hg.mozilla.orgDaniel Stenberg
... as mxr.mozilla.org is due to be retired. The new host doesn't support If-Modified-Since nor ETags, meaning that the script will now defer to download and do a post-transfer checksum check to see if a new output is to be generated. The new output format will hold the SHA1 checksum of the source file for that purpose. We call this version 1.22 Reported-by: Ed Morley Bug: http://curl.haxx.se/bug/view.cgi?id=1409