Kamil Dudka [Fri, 28 Aug 2009 12:06:51 +0000 (12:06 +0000)]
- Improved error message for not matching certificate subject name in
libcurl-NSS. Originally reported at:
https://bugzilla.redhat.com/show_bug.cgi?id=516056#c9
Patrick Monnerat [Mon, 24 Aug 2009 12:57:25 +0000 (12:57 +0000)]
- Introduced a SYST-based test to properly set-up name format when dealing with the OS/400 FTP server.
- Fixed an ftp_readresp() bug preventing detection of failing control socket and causing FTP client to loop forever.
Daniel Stenberg [Mon, 24 Aug 2009 10:57:17 +0000 (10:57 +0000)]
- Eric Wong introduced support for the new option -T. (dot) that makes curl
read stdin in a non-blocking fashion. This also brings back -T- (minus) to
the previous blocking behavior since it could break stuff for people at
times.
Daniel Stenberg [Fri, 21 Aug 2009 12:01:36 +0000 (12:01 +0000)]
- Andre Guibert de Bruet pointed out a missing return code check for a
strdup() that could lead to segfault if it returned NULL. I extended his
suggest patch to now have Curl_retry_request() return a regular return code
and better check that.
Daniel Stenberg [Fri, 21 Aug 2009 07:11:20 +0000 (07:11 +0000)]
- Lots of good work by Krister Johansen, mostly related to pipelining:
Fix SIGSEGV on free'd easy_conn when pipe unexpectedly breaks
Fix data corruption issue with re-connected transfers
Fix use after free if we're completed but easy_conn not NULL
Dan Fandrich [Tue, 18 Aug 2009 00:18:54 +0000 (00:18 +0000)]
Pull the certificate files from the source directory. Ensure that the
certificate tests only run on a localhost-hosted test server since the
host name is explicitly checked.
Daniel Stenberg [Fri, 14 Aug 2009 18:09:42 +0000 (18:09 +0000)]
I think it's worth clarifying that curl DOES NOT validate a given URL more
than what's absolutely necessary:
curl will do its best to use what you pass to it as a URL. It is not trying to
validate it as a syntactically correct URL by any means but is instead
VERY liberal with what it accepts.
Kamil Dudka [Thu, 13 Aug 2009 16:04:51 +0000 (16:04 +0000)]
- Changed NSS code to not ignore the value of ssl.verifyhost and produce more
verbose error messages. Originally reported at:
https://bugzilla.redhat.com/show_bug.cgi?id=516056
Daniel Stenberg [Wed, 12 Aug 2009 11:18:55 +0000 (11:18 +0000)]
Added a range of new fun date strings to try. This set of dates come from a
mail posted to the http-state mailing list, from Adam Barth, and is said to be
the set of date formats the Chrome browser code is tested against:
http://www.ietf.org/mail-archive/web/http-state/current/msg00129.html
libcurl parses most of them identically, but not all of them.
Daniel Stenberg [Wed, 12 Aug 2009 08:19:39 +0000 (08:19 +0000)]
- Carsten Lange reported a bug and provided a patch for TFTP upload and the
sending of the TSIZE option. I don't like fixing bugs just hours before
a release, but since it was broken and the patch fixes this for him I decided
to get it in anyway.
Daniel Stenberg [Tue, 11 Aug 2009 21:48:58 +0000 (21:48 +0000)]
- Peter Sylvester made the HTTPS test server use specific certificates for
each test, so that the test suite can now be used to actually test the
verification of cert names etc. This made an error show up in the OpenSSL-
specific code where it would attempt to match the CN field even if a
subjectAltName exists that doesn't match. This is now fixed and verified
in test 311.
Daniel Stenberg [Tue, 11 Aug 2009 20:43:12 +0000 (20:43 +0000)]
- Benbuck Nason posted the bug report #2835196
(http://curl.haxx.se/bug/view.cgi?id=2835196), fixing a few compiler
warnings when mixing ints and bools.
Dan Fandrich [Tue, 11 Aug 2009 18:11:40 +0000 (18:11 +0000)]
Include the Android make file in the source package even though the
config.h issue hasn't been completely solved. This will save some effort
for someone desperate to use curl on Android.
Patrick Monnerat [Tue, 11 Aug 2009 14:07:08 +0000 (14:07 +0000)]
Fix definition of CURLOPT_SOCKS5_GSSAPI_SERVICE from LONG to OBJECTPOINT
Fix OS400 makefile for tests to use the new Makefile.inc in libtest
Update the OS400 wrappers and RPG binding according to the current CVS source state
Gunter Knauf [Thu, 6 Aug 2009 11:10:30 +0000 (11:10 +0000)]
cast to fix 64bit build warnings. From manpage:
POSIX.1-2001. Note that RFC 2553 defines a prototype where the last parameter cnt is of type size_t.
Many systems follow RFC 2553. Glibc 2.0 and 2.1 have size_t, but 2.2 has socklen_t.
Daniel Stenberg [Mon, 3 Aug 2009 11:51:06 +0000 (11:51 +0000)]
- Timo Teras changed the reason code used in the resolve callback done when
ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to
better allow the callback to know what's happening.
Daniel Stenberg [Mon, 3 Aug 2009 11:29:17 +0000 (11:29 +0000)]
- Joshua Kwan fixed the init routine to fill in the defaults for stuff that
fails to get inited by other means. This fixes a case of when the c-ares
init fails when internet access is fone.
Daniel Stenberg [Mon, 3 Aug 2009 08:45:19 +0000 (08:45 +0000)]
Reverted the zero-byte-in-name check to instead rely on the fact that strlen
and the name length differ in those cases and thus leave the matching function
unmodified from before, as the matching functions never have to bother with
the zero bytes in legitimate cases. Peter Sylvester helped me realize that
this fix is slightly better as it leaves more code unmodified and makes the
detection a bit more obvious in the code.
Daniel Stenberg [Sun, 2 Aug 2009 22:34:00 +0000 (22:34 +0000)]
Extended my embedded-zero-in-cert-name fix based on a comment from Scott
Cantor. My previous attempt was half-baked and didn't cover the normal CN
case.
Daniel Stenberg [Sat, 1 Aug 2009 22:11:58 +0000 (22:11 +0000)]
- Curt Bogmine reported a problem with SNI enabled on a particular server. We
should introduce an option to disable SNI, but as we're in feature freeze
now I've addressed the obvious bug here (pointed out by Peter Sylvester): we
shouldn't try to enable SNI when SSLv2 or SSLv3 is explicitly selected.
Code for OpenSSL and GnuTLS was fixed. NSS doesn't seem to have a particular
option for SNI, or are we simply not using it?
Daniel Stenberg [Sat, 1 Aug 2009 21:56:59 +0000 (21:56 +0000)]
- Scott Cantor posted the bug report #2829955
(http://curl.haxx.se/bug/view.cgi?id=2829955) mentioning the recent SSL cert
verification flaw found and exploited by Moxie Marlinspike. The presentation
he did at Black Hat is available here:
https://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html#Marlinspike
Apparently at least one CA allowed a subjectAltName or CN that contain a
zero byte, and thus clients that assumed they would never have zero bytes
were exploited to OK a certificate that didn't actually match the site. Like
if the name in the cert was "example.com\0theatualsite.com", libcurl would
happily verify that cert for example.com.
libcurl now better use the length of the extracted name, not assuming it is
zero terminated.
Daniel Stenberg [Sat, 1 Aug 2009 11:09:02 +0000 (11:09 +0000)]
- Tanguy Fautre pointed out that OpenSSL's function RAND_screen() (present
only in some OpenSSL installs - like on Windows) isn't thread-safe and we
agreed that moving it to the global_init() function is a decent way to deal
with this situation.
Daniel Stenberg [Sat, 1 Aug 2009 11:02:10 +0000 (11:02 +0000)]
- Alexander Beedie provided the patch for a noproxy problem: If I have set
CURLOPT_NOPROXY to "*", or to a host that should not use a proxy, I actually
could still end up using a proxy if a proxy environment variable was set.
Daniel Stenberg [Fri, 31 Jul 2009 11:16:04 +0000 (11:16 +0000)]
67. When creating multipart formposts. The file name part can be encoded with
something beyond ascii but currently libcurl will only pass in the verbatim
string the app provides. There are several browsers that already do this
encoding. The key seems to be the updated draft to RFC2231:
http://tools.ietf.org/html/draft-reschke-rfc2231-in-http-02
Daniel Stenberg [Mon, 27 Jul 2009 18:36:56 +0000 (18:36 +0000)]
- All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and
CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to
send when using FTP, as a sign that libcurl shall simply ignore the response
from the server instead of treating it as an error. Not treating a 400+ FTP
response code as an error means that failed commands will not abort the
chain of commands, nor will they cause the connection to get disconnected.
Daniel Stenberg [Mon, 27 Jul 2009 18:31:48 +0000 (18:31 +0000)]
From: Johan van Selst
"you replaced the old SSLeay_add_ssl_algorithms() call
with OpenSSL_add_all_algorithms(), however unlike the name suggests,
the second function is not a superset of the first. When using SSL
both these functions will need to be called in order to offer complete
functionality"
Daniel Stenberg [Sun, 26 Jul 2009 17:33:36 +0000 (17:33 +0000)]
- Bug report #2825989 (http://curl.haxx.se/bug/view.cgi?id=2825989) pointed
out that OpenSSL-powered libcurl didn't support the SHA-2 digest algorithm,
and provided the solution too: to use OpenSSL_add_all_algorithms() instead
of the older SSLeay_* alternative. OpenSSL_add_all_algorithms was added in
OpenSSL 0.9.5
Daniel Stenberg [Sat, 25 Jul 2009 18:09:57 +0000 (18:09 +0000)]
properly free data returned by aprintf(), and bring back the code to be
independent of libssh2 version as the client code isn't really meant to adapt
to such build-time constraints.
Daniel Stenberg [Wed, 22 Jul 2009 22:49:01 +0000 (22:49 +0000)]
- Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA.
They introduce known_host support for SSH keys to libcurl. See docs for
details.
Michal Marek [Wed, 22 Jul 2009 09:48:32 +0000 (09:48 +0000)]
- David Binderman found a memory and fd leak in lib/gtls.c:load_file()
(https://bugzilla.novell.com/523919). When looking at the code, I found
that also the ptr pointer can leak.
- Claes Jakobsson improved the support for client certificates handling
in NSS-powered libcurl. Now the client certificates can be selected
automatically by a NSS built-in hook. Additionally pre-login to all PKCS11
slots is no more performed. It used to cause problems with HW tokens.
- Fixed reference counting for NSS client certificates. Now the PEM reader
module should be always properly unloaded on Curl_nss_cleanup(). If the unload
fails though, libcurl will try to reuse the already loaded instance.
Bill Hoffman [Wed, 15 Jul 2009 19:25:22 +0000 (19:25 +0000)]
BUG: curl did not build with cmake with VS 2005 for two reasons, ws2tcpip.h requires winsock2.h to be included before it with that compiler, and wldap32 is not available with the default install of the compiler, so disable ldap support if that is not found
renamed generated config.h to curl_config.h in order to avoid clashes when libcurl is used with other projects which also have a config.h (missing bits)