aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
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.
2013-11-12darwinssl: check for SSLSetSessionOption() presence when toggling BEASTNick Zitzmann
Even though this is only a formality (since not many people build on Mavericks while targeting Leopard), since we still support Leopard at the earliest, we might as well be pedantic.
2013-11-12darwinssl: PKCS#12 import feature now requires Lion or laterNick Zitzmann
It turns out that some of the constants necessary to make this feature work are missing from Snow Leopard's Security framework even though they are defined in the headers. Bug: http://curl.haxx.se/mail/lib-2013-11/0076.html Reported by: myriachan
2013-11-12curl_easy_setopt: Added the ability to set the login options separatelySteve Holme
Rather than set the authentication options as part of the login details specified in the URL, or via the older CURLOPT_USERPWD option, added a new libcurl option to allow the login options to be set separately.
2013-11-12multi: Small code tidy up to avoid hard returnSteve Holme
2013-11-11multi: Set read socket when returning READSOCK(0)Björn Stenberg
This patch fixes and issue introduced in commit 7d7df831981fee, if the tunnel state was TUNNEL_CONNECT, waitconnect_getsock() would return a bitmask indicating a readable socket but never stored the socket in the return array.
2013-11-10connect: Close temporary sockets in conn_free()Björn Stenberg
The temporary sockets used for Happy Eyeballs were not closed properly, if curl exited prematurely, which this patch fixes.
2013-11-10ares: Fixed compilation under Visual Studio 2012Kim Vandry
2013-11-05url.c: Very small amount of policingSteve Holme