cURL cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[curl:bugs] #1463 libCurl crashes the program by throwing SSL read: error:00000000:lib(0):func(0):reason(0), errno 110".

From: kritpal singh <kritpalsingh_at_users.sf.net>
Date: Wed, 10 Dec 2014 07:52:43 +0000

Yeah i tried Signal's and try catch to handle this but no luck in catching this error. process exit immediately after receiving this error.

my openSSL version is 1.0.1i on openwrt platform
I run my code on x86 linux where it stuck for long time process doesn't came out of it.

on x86 my curl version is 7.35.0 and openSSL version is 1.0.1f

I tried to dig up more in this issue and i got more precise step to reproduce it.

1.run curl command (form post) with verbose enabled (version->7.38.0,paltform->openwrt arm)
2.when it comes to Http/1.1 100 continue unplug your internet wire.

i will try to reproduce this issue on other platform as well and give you the result.

 
 

---
** [bugs:#1463] libCurl crashes the program by throwing SSL read: error:00000000:lib(0):func(0):reason(0), errno 110".**
**Status:** open
**Labels:** errno 110 SSL/TLS openssl 
**Created:** Tue Dec 09, 2014 12:18 PM UTC by kritpal singh
**Last Updated:** Tue Dec 09, 2014 01:50 PM UTC
**Owner:** Daniel Stenberg
**libcurl version** - 7.38.0
**platform** - openwrt arm7 
**protocol** - https 
**program code snippet**
if (curl) {
   curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
   curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
   curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
   curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30);
   curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, read_data);
   //url_easy_setopt(curl, CURLOPT_WRITEDATA, client);
   curl_easy_setopt(curl, CURLOPT_URL, "https://***.com:1027/page");  
   curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
   curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 0);
   printf("sending perform request\n");
   try{
   res = curl_easy_perform(curl); // Perform the request, res will get the return code 
   printf("%s",curl_easy_strerror(res));
   }catch(int e){
       printf("catch the error\n");
       fflush(stdout);
   }
   printf("perform done");
   if (res != CURLE_OK) { /* Check for errors */
       fprintf(stderr, "curl_easy_perform() failed: %s\n",
               curl_easy_strerror(res));
       printf(" Uploading failed \n");
       fflush(stdout);
       result = 0;
   }
And i tried with this as well 
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 2);
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, true);
    curl_easy_setopt(curl, CURLOPT_CAINFO, "/server.cer");
**Output **
sending perform request
> POST /send_log HTTP/1.1
Host: cloud.securifi.com:1027
Accept: */*
Content-Length: 1028775
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------d7460292fcc7
< HTTP/1.1 100 Continue
* SSL read: error:00000000:lib(0):func(0):reason(0), errno 110
---
Sent from sourceforge.net because curl-tracker@cool.haxx.se is subscribed to https://sourceforge.net/p/curl/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/curl/admin/bugs/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
Received on 2014-12-10

These mail archives are generated by hypermail.