curl 7.31.0 released

Arieh

Verified User
Joined
May 27, 2008
Messages
1,308
Location
The Netherlands
curl 7.31.0 released
Hi friends,

I'm happy to announce a fresh release of curl and libcurl. More features, many bugs fixed and another security vulnerability fixed. See below for details.

[...]

Curl and libcurl 7.31.0

Public curl releases: 133
Command line options: 152
curl_easy_setopt() options: 199
Public functions in libcurl: 58
Known libcurl bindings: 42
Contributors: 1005

***
krb4 support is up for removal. If you care about it at all, speak up
on the curl-library list asap!
***

This release includes the following changes:

o darwinssl: add TLS session resumption
o darwinssl: add TLS crypto authentication
o imap/pop3/smtp: Added support for ;auth=<mech> in the URL
o imap/pop3/smtp: Added support for ;auth=<mech> to CURLOPT_USERPWD
o usercertinmem.c: add example showing user cert in memory
o url: Added smtp and pop3 hostnames to the protocol detection list
o imap/pop3/smtp: Added support for enabling the SASL initial response [8]
o curl -E: allow to use ':' in certificate nicknames [10]

This release includes the following bugfixes:

o SECURITY VULNERABILITY: curl_easy_unescape() may parse data beyond the end
of the input buffer [26]

o FTP: access files in root dir correctly [1]
o configure: try pthread_create without -lpthread [2]
o FTP: handle a 230 welcome response [3]
o curl-config: don't output static libs when they are disabled
o CURL_CHECK_CA_BUNDLE: don't check for paths when cross-compiling [4]
o Various documentation updates
o getinfo.c: reset timecond when clearing session-info variables [5]
o FILE: prevent an artificial timeout event due to stale speed-check data [6]
o ftp_state_pasv_resp: connect through proxy also when set by env [7]
o sshserver: disable StrictHostKeyChecking
o ftpserver: Fixed imap logout confirmation data
o curl_easy_init: use less mallocs
o smtp: Fixed unknown percentage complete in progress bar
o smtp: Fixed sending of double CRLF caused by first in EOB
o bindlocal: move brace out of #ifdef [9]
o winssl: Fixed invalid memory access during SSL shutdown [11]
o OS X framework: fix invalid symbolic link
o OpenSSL: allow empty server certificate subject [12]
o axtls: prevent memleaks on SSL handshake failures
o cookies: only consider full path matches
o Revert win32 MemoryTracking: wcsdup() _wcsdup() and _tcsdup() [13]
o Curl_cookie_add: handle IPv6 hosts [14]
o ossl_send: SSL_write() returning 0 is an error too
o ossl_recv: SSL_read() returning 0 is an error too
o Digest auth: escape user names with \ or " in them [15]
o curl_formadd.3: fixed wrong "end-marker" syntax [16]
o libcurl-tutorial.3: fix incorrect backslash [17]
o curl_multi_wait: reduce timeout if the multi handle wants to [18]
o tests/Makefile: typo in the perlcheck target [19]
o axtls: honor disabled VERIFYHOST
o OpenSSL: avoid double free in the PKCS12 certificate code [20]
o multi_socket: reduce timeout inaccuracy margin [21]
o digest: support auth-int for empty entity body [22]
o axtls: now done non-blocking
o lib1900: use tutil_tvnow instead of gettimeofday
o curl_easy_perform: avoid busy-looping [23]
o CURLOPT_COOKIELIST: take cookie share lock [24]
o multi_socket: react on socket close immediately [25]

This release includes the following known bugs:

o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html)
 
After upgrading to curl 7.31 my WHMCS Enom module did not work anymore. And when I investigated I get this error at last line when doing: [root@server ~]# curl https://reseller.enom.com

Code:
curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 0

Here is the full output:

Code:
[root@server ~]# curl https://reseller.enom.com
;URL Interface<br>
;Machine is SJL01WRESELL14<br>
Command=
Language=eng
ErrCount=1
Err1=An invalid command was specified
ResponseCount=1
ResponseNumber1=304150
ResponseString1=Validation error; invalid ; command
MinPeriod=
MaxPeriod=10
Server=SJL01WRESELL14
Site=
IsLockable=
IsRealTimeTLD=
TimeDifference=+0.00
ExecTime=0.047
Done=true
RequestDateTime=6/26/2013 2:53:15 AM
curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 0

Then I changed versions.txt in custombuild and downgraded to curl 7.30, and then my WHMCS Enom module started working again, and the error from above disappeared. Here is output after downgrading to curl 7.30:

Code:
[root@server ~]# curl https://reseller.enom.com
;URL Interface<br>
;Machine is SJL01WRESELL11<br>
Command=
Language=eng
ErrCount=1
Err1=An invalid command was specified
ResponseCount=1
ResponseNumber1=304150
ResponseString1=Validation error; invalid ; command
MinPeriod=
MaxPeriod=10
Server=SJL01WRESELL11
Site=
IsLockable=
IsRealTimeTLD=
TimeDifference=+0.00
ExecTime=0.047
Done=true
RequestDateTime=6/26/2013 3:44:31 AM

So, downgrading to curl 7.30 solved my problem. Is this a bug in custombuild packages of curl, or is it a bug in curl itself? I will send email to support at DirectAdmin and ask them to look at this.

(I am running CentOS 6.4 64bit, cb 2.0, php 5.4.16 as mod_php with mod_ruid2.)
 
Last edited:
Thank you for that information. I wonder if the bug is with enom api, or curl, or custombuild packages of curl. Also maybe it will work for those running whmcs over plain http, I don't know, I am running whmcs over https, and the enom module does not work at all with curl 7.31 (also i caused 100% cpu usage when trying to view a enom domain in whmcs).

If you are a customer at enom, maybe you also will report this to them? I have reported it, but not sure if they will investigate or not. I am sure John at DirectAdmin will look at this also, and if it is a bug in custombuild packages of curl, hopefully he will be able to fix it ...
 
Ran across the same issue and error... Additionally, it would not let me access the "Domains" tab in the Client Profile of WHMCS. Moving back to 7.30 fixed the issues.

On a side note, during this issue I found WHMCS is now using/recommending domainsync.php instead of enonsync.php... Apparently for some time now but I missed that.
 
Thanks for the reply both here and in email, John. I have not yet upgraded DirectAdmin, so that is not related to this. However when I read user Arieh reply #3:

Tested it and got the same with https://reseller.enom.com. If I curl a https website of my own it works fine on both versions though. No clue what that error means.

That makes me believe it is a bug in enom api, and that the enom api is not compatible with newest curl 7.31. I don't think it is a bug in curl anymore. So let's hope enom will test and fix this, so that the newest curl version 7.31 will be able to work against reseller.enom.com

I have received a reply from enom support wich say this:

I am glad that you were able to resolve this matter. I will refer this matter to our Senior Technical Staff to determine any next steps. Any results I receive from them, I will pass on through this ticket.

So, lets wait for enom to look into it. :)
 
If anyone needs to go backwards, an easy way is with:
Code:
cd /usr/local/directadmin/custombuild
perl -pi -e 's/curl:7.31.0:.*/curl:7.30.0:/' versions.txt
chattr +i versions.txt
./build curl
and use chattr -i versions.txt to unlock the versions.txt if you want to update it at a future date.
Locking it will prevent the updating of any versions in custombuild.. so if you do a manual compile of each time, then you don't need to lock it.. just make sure not to recompile curl again (and it will get the 7.31.0 version again in the versions.txt)

John
 
Seeing the same problem here with cURL via PHP. Downgrading to 7.30 fixed it for me.
 
@mjm, Where do you have the problem, only in the WHMCS Enom module, correct? I have not seen any other report of problem with curl 7.31 except from the problem with Enom api and WHMCS Enom module.
 
Calling cURL via PHP with SSL threw the same errors you posted above (curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 0) through 2 different systems. When I reverted to 7.30 it started working again.
 
But what command did you run when "calling curl"? Was it against eNom api or not? I am just trying to understand if the bug is in eNom api or with curl 7.31 itself.
 
It's all PHP stuff, I was not working with eNom. The problem appears to be with SSL & cURL 7.31.
 
hi all,

i am having same issue with a Debian 7.3 server, cant provision an account from whmcs.

on the server when trying;

curl -k my.otherservername.net:2222
use https
curl: (56) Recv failure: Connection reset by peer

that same commands works fine on any other DA server.


i have tried downgrading Curl to 7.30 as per Johns explanation above. Also rebuild Apache and PHP and still no luck.

Directadmin logs show this when trying to provision account,

2014:02:06-12:26:26: Can't connect to ssl!
2014:02:06-12:26:26: -> A failure in the SSL library occurred, usually a protocol error.
2014:02:06-12:26:26: -> error:00000001:lib(0):func(0):reason(1)

hope someone can help.

Denny
 
Hello,

Curl is trying to connect without ssl. Tell it to use https, eg:
Code:
[COLOR=#333333][I]curl -k https://my.otherservername.net:2222
[/I][/COLOR]John
 
John,

my error above with syntax.

doing curl -k https://my.otherservername.net:2222 on my DA server works and returns a login page.

this is what i get in WHMCS when accepting order and trying to provision account on DA server.

56 - Recv failure: Connection reset by peer

and produces error mentioned earlier in Directadmin /var/log/directadmin/error.log

does anyone have any ideas how to find source of issue?

i have tried downgrade Curl and back to 7.35.0 and issue persists.
 
[..]
does anyone have any ideas how to find source of issue?

i have tried downgrade Curl and back to 7.35.0 and issue persists.

I am running curl 7.35 on php 5.4.x and WHMCS 5.2.16 and don't have any problems at all.

Maybe you have upgraded to the new WHMCS version 5.3.3 wich was released a day or two ago? It could be a bug in the new WHMCS version. I would recommend that you contact WHMCS support for help troubleshoting this.
 
Back
Top