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