45220
cURL related
Bug
brockn@gmail.com
curl_read callback returns -1 when needs to return size_t (unsigned)
Description:
------------
curl_read, can return -1 when it explicitly states its return size_t. This causes curl versions >= 7.18.X to fail with the attached code.
Curl stores the callback return value as int, but casts it to a size_t to do a check. This causes the value to become very large and thus the check fails when it should not.
I tried to download a snapshot and check that out, but the site appears to be down.
Reproduce code:
---------------
<?php
$host= 'http://bashcurescancer.com/dump-request-variable.php';
$CR = curl_init();
curl_setopt($CR, CURLOPT_TIMEOUT, 60);
curl_setopt($CR, CURLOPT_URL, $host);
curl_setopt($CR, CURLOPT_POST, 1);
curl_setopt($CR, CURLOPT_FAILONERROR, true);
curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($CR, CURLOPT_SSL_VERIFYPEER, 0);
$body = curl_exec( $CR );
$error = curl_error( $CR );
if( !empty( $error )) {
print("FAIL: $error\n");
exit(1);
} else {
print("PASS: " . trim($body) . "\n");
curl_close($CR);
exit(0);
}
?>
Expected result:
----------------
PASS: array (
)
Actual result:
--------------
FAIL: Failed to open/read local data from file/application
5.2.6
CentOS release 4.6 (Final)
Closed
2008-06-09 17:17:46
2008-08-13 20:18:56
N
N
1213031866
1218658736
3
php
2
2
0
1
4.0000
0.81649658092773