aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2013-12-18pop3: Moved the sending of the AUTH command into a separate functionSteve Holme
2013-12-18imap: Moved the sending of the AUTHENICATE command into a separate functionSteve Holme
2013-12-17email: Renamed *_perform_authenticate() functionsSteve Holme
In preparation for the upcoming SASL downgrade feature renamed the imap__perform_authenticate(), pop3__perform_authenticate() and smtp__perform_authenticate() functions.
2013-12-16gtls: respect *VERIFYHOST independently of *VERIFYPEERDaniel Stenberg
Security flaw CVE-2013-6422 This is conceptually the same problem and fix that 3c3622b6 brought to the OpenSSL backend and that resulted in CVE-2013-4545. This version of the problem was independently introduced to the GnuTLS backend with commit 59cf93cc, present in the code since the libcurl 7.21.4 release. Advisory: http://curl.haxx.se/docs/adv_20131217.html Bug: http://curl.haxx.se/mail/lib-2013-11/0214.html Reported-by: Marc Deslauriers
2013-12-15multi: add timer inaccuracy margin to timeout/connecttimeoutDaniel Stenberg
Since all systems have inaccuracy in the timeout handling it is imperative that we add an inaccuracy margin to the general timeout and connecttimeout handling with the multi interface. This way, when the timeout fires we should be fairly sure that it has passed the timeout value and will be suitably detected. For cases where the timeout fire before the actual timeout, we would otherwise consume the timeout action and still not run the timeout code since the condition wasn't met. Reported-by: He Qin Bug: http://curl.haxx.se/bug/view.cgi?id=1298
2013-12-14login options: remove the ;[options] support from CURLOPT_USERPWDDaniel Stenberg
To avoid the regression when users pass in passwords containing semi- colons, we now drop the ability to set the login options with the same options. Support for login options in CURLOPT_USERPWD was added in 7.31.0. Test case 83 was modified to verify that colons and semi-colons can be used as part of the password when using -u (CURLOPT_USERPWD). Bug: http://curl.haxx.se/bug/view.cgi?id=1311 Reported-by: Petr Bahula Assisted-by: Steve Holme Signed-off-by: Daniel Stenberg <daniel@haxx.se>
2013-12-14imap: Fixed exclude of clear text when using auth=* in commit 75cd7fd66762bbSteve Holme
It is not 100% clear whether * should include clear text LOGIN or not from RFC-5092, however, including it is then consistent with current POP3 behaviour where clear text, APOP or SASL may be chosen.
2013-12-13imap: Fixed incorrect fallback to clear text authenticationSteve Holme
If a specific SASL authentication mechanism was requested by the user as part of the login options but wasn't supported by the server then curl would fallback to clear text, when it shouldn't, rather than reporting "No known authentication mechanisms supported" as the POP3 and SMTP protocols do.
2013-12-11parsedate: avoid integer overflowEric Lubin
In C, signed integer overflow is undefined behavior. Thus, the compiler is allowed to assume that it will not occur. In the check for an overflow, the developer assumes that the signed integer of type time_t will wrap around if it overflows. However, this behavior is undefined in the C standard. Thus, when the compiler sees this, it simplifies t + delta < t to delta < 0. Since delta > 0 and delta < 0 can't both be true, the entire if statement is optimized out under certain optimization levels. Thus, the parsedate function would return PARSEDATE_OK with an undefined value in the time, instead of return -1 = PARSEDATE_FAIL.
2013-12-07TFTP: let tftp_multi_statemach()'s return codes throughJames Dury
It would otherwise always clobber the return code with new function calls and it couldn't return timeout etc. Bug: http://curl.haxx.se/bug/view.cgi?id=1310
2013-12-07darwinssl: Fix #if 10.6.0 for SecKeychainSearchMelissa Mears
The comment here says that SecKeychainSearch causes a deprecation warning when used with a minimum Mac OS X SDK version of 10.7.0, which is correct. However, the #if guard did not match. It was intended to only use the code if 10.6.0 support was enabled, but it had 10.7.0 instead. This caused a warning if the minimum was exactly 10.7.0.
2013-12-04digest: fix CURLAUTH_DIGEST_IEDaniel Stenberg
The URI that is passed in as part of the Authorization: header needs to be cut off at '?' if CURLAUTH_DIGEST_IE is set. Previously the code only did when calculating the MD5sum. Bug: http://curl.haxx.se/bug/view.cgi?id=1308 Patched-by: Sergey Tatarincev
2013-12-04Curl_is_connected: use proxy name in error message when proxy is usedDaniel Stenberg
(bug introduced in 255826c4, never present in a release) Reported-by: Dima Tisnek Bug: http://curl.haxx.se/mail/lib-2013-12/0006.html
2013-12-04imap/pop3: Post graceful cancellation consistency changesSteve Holme
2013-12-04pop3: Fix POP3_TYPE_ANY signed compilation warningMelissa Mears
POP3_TYPE_ANY, or ~0, is written to pop3c->preftype in lib/pop3c.c, an unsigned int variable. The result of ~0 is -1, which caused a warning due to writing a negative number to an unsigned variable. To fix this, make the expression ~0U so that its value is considered the unsigned number UINT_MAX which is what SASL_AUTH_ANY does in curl_sasl.h.
2013-12-02nss: make sure that 'sslver' is always initializedKamil Dudka
2013-12-02nss: unconditionally require NSS_InitContext()Kamil Dudka
... since we depend on NSS 3.14+ because of SSL_VersionRangeSet() anyway
2013-12-02nss: allow to use TLS > 1.0 if built against recent NSSKamil Dudka
Bug: http://curl.haxx.se/mail/lib-2013-11/0162.html
2013-12-02nss: put SSL version selection into separate fncKamil Dudka
2013-12-02nss: use a better API for controlling SSL versionKamil Dudka
This change introduces a dependency on NSS 3.14+.
2013-12-01multi.c: Fixed compilation warningSteve Holme
warning: declaration of 'pipe' shadows a global declaration
2013-12-01base64: Corrected typo from commit f3ee587775c88aSteve Holme
2013-12-01base64: Post extended extended validation tidy upSteve Holme
Reduced the separate processing of the last quantum to be performed in the main decoding loop and renamed some variables for consistency.
2013-12-01base64: Extended validation to look for invalid charactersSteve Holme
Extended the basic validation in commit e17c1b25bc33eb to return a failure when invalid base64 characters are included.
2013-11-30base64: Post basic validation tidy upSteve Holme
Due to the length checks introduced in commit e17c1b25bc33eb there is no need to allow for extra space in the output buffer for a non-padded last quantum.
2013-11-30curl_easy_getinfo: Post CURLINFO_TLS_SESSION tidy upSteve Holme
1) Renamed curl_tlsinfo to curl_tlssessioninfo as discussed on the mailing list. 2) Renamed curl_ssl_backend to curl_sslbackend so it doesn't follow our function naming convention. 3) Updated sessioninfo.c example accordingly.
2013-11-27multi.c: Fixed compilation error introduced in commit a900d45489fc14Steve Holme
Systems that define SIGPIPE_VARIABLE as a noop would not compile as restore_pipe was defined afterwards.
2013-11-27curl_easy_getopt: Handle API violation gracefullyChristian Grothoff
This fixes a NULL dereference in the case where the client asks for CURLINFO_TLS_SESSION data after the (TLS) session has already been destroyed (i.e. curl_easy_perform has already completed for this handle). Instead of crashing, we now return a CURLSSLBACKEND_NONE error.
2013-11-27curl_multi_cleanup: ignore SIGPIPEJeff King
This is an extension to the fix in 7d80ed64e43515. We may call Curl_disconnect() while cleaning up the multi handle, which could lead to openssl sending packets, which could get a SIGPIPE. Signed-off-by: Jeff King <peff@peff.net>
2013-11-27sigpipe: factor out sigpipe_reset from easy.cJeff King
Commit 7d80ed64e43515 introduced some helpers to handle sigpipe in easy.c. However, that fix was incomplete, and we need to add more callers in other files. The first step is making the helpers globally accessible. Since the functions are small and should generally end up inlined anyway, we simply define them in the header as static functions. Signed-off-by: Jeff King <peff@peff.net>
2013-11-27connect: Try next ip directly after immediate connect failBjörn Stenberg
This fixes a rare Happy Eyeballs bug where if the first IP family runs out of addresses before the second-family-timer fires, and the second IP family's first connect fails immediately, no further IPs of the second family are attempted.
2013-11-25hostip: don't prune DNS cache entries that are in useDaniel Stenberg
When adding entries to the DNS cache with CURLOPT_RESOLVE, they are marked 'inuse' forever to prevent them from ever being removed in normal operations. Still, the code that pruned out-of-date DNS entries didn't care for the 'inuse' struct field and pruned it anyway! Reported-by: Romulo A. Ceccon Bug: http://curl.haxx.se/bug/view.cgi?id=1303
2013-11-23smtp: Post SMTP command expansion tidy upSteve Holme
Removed unnecessary SMTP_STOP state changes on failure. Removed hard return on failure in smtp_state_data_resp().
2013-11-21curl_easy_getinfo: Added CURLINFO_TLS_SESSION for accessing TLS internalsChristian Grothoff
Added new API for returning a SSL backend type and pointer, in order to allow access to the TLS internals, that may then be used to obtain X509 certificate information for example.
2013-11-17smtp: Fixed space being sent in non --mail-rcpt based requestsSteve Holme
Commands such as NOOP, RSET and HELP would be sent with a space at the end of the command, for example: "NOOP ".
2013-11-17smtp: Changed the default command to HELP when no options are specifiedSteve Holme
Otherwise a NOOP operation would be performed which a) only returns a single line response and not a multiline response where -I needs to be used, and b) provides an inconsistent user experience compared to that of the POP3 and IMAP protocols.
2013-11-17smtp:Fixed memory leak from commit dac01ff6d788b2Steve Holme
The buffer allocated by smtp_parse_custom_request() was not freed.
2013-11-17connect: Close open but unconnected socket in singleipconnect()Steve Holme
singleipconnect() could return the file descriptor of an open socket even though the function returned a CURLE_COULDNT_CONNECT error code from commit ed1662c374361a and 02fbc26d59c591. This could cause tests 19, 704 and 1233 to fail on FreeBSD, AIX and Solaris.
2013-11-15smtp: Fixed broken RCPT TO from commit 0ea4a80bb23666Steve Holme
2013-11-15smtp_state_mail_resp: removed unused variable 'smtp'Daniel Stenberg
2013-11-15smtp: Simplified the next RCPT TO logicSteve Holme
2013-11-15smtp.c: Fixed trailing whitespaceSteve Holme
2013-11-15smtp: Added support for VRFY and EXPN commandsSteve Holme
2013-11-15smtp: Added support for NOOP and RSET commandsSteve Holme
2013-11-15smtp: Fixed handling of multiline server greeting responsesSteve Holme
Incorrectly processed multiline server greeting responses as "wanted" continue responses in smtp_endofresp(), from commit f16c0de4e9bbe3, which in turn broke the SMTP server detection in the test suite, because the EHLO command would not be sent.
2013-11-15smtp.c: Fixed compilation error from commit f16c0de4e9bbe3Steve Holme
warning: unused variable 'smtpc'
2013-11-15smtp: Fixed processing of more than one response when sent in same packetSteve Holme
Added a loop to smtp_statemach_act() in which Curl_pp_readresp() is called until the cache is drained. Without this multiple responses received in a single packet could result in a hang or delay.
2013-11-15smtp: Moved EHLO response handling to smtp_state_ehlo_resp()Steve Holme
Similar to the processing of untagged CAPABILITY responses in IMAP moved the processing of multiline EHLO responses to smtp_state_ehlo_resp() and introduced an internal response code of one to differentiate a multiline continuation from the end of command. This also allows for the separate processing of multiline responses from commands such as VRFY and EXPN.
2013-11-14connect: Forgot to correct line endings before push in commit ed1662c374361aSteve Holme
2013-11-14connect: Return the socket descriptor even on failBjörn Stenberg
singleipconnect() did not return the open socket descriptor on some errors, thereby sometimes causing a socket leak. This patch ensures the socket is always returned.