ID: 26332 User updated by: foxkill at gmx dot de Reported By: foxkill at gmx dot de -Status: No Feedback +Status: Open Bug Type: cURL related Operating System: Linux -PHP Version: 5CVS-2003-11-20 (dev) +PHP Version: 5.0.0RC1-dev New Comment:
You'll find the script to reproduce the error under: http://www.secnow.de/websearch/websearch.txt The script runs either in an endless loop or if it terminates it prints: Last leak repeated 2 times /opt/local/src/lamp/php5-src/ext/curl/multi.c(62) : Freeing 0x40291A34 (8 bytes), script=websearch.php === Total 4 memory leaks detected === Previous Comments: ------------------------------------------------------------------------ [2004-02-24 17:13:24] [EMAIL PROTECTED] No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [2004-02-20 04:52:21] [EMAIL PROTECTED] Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If possible, make the script source available online and provide an URL to it here. Try avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2003-11-20 09:48:05] foxkill at gmx dot de Description: ------------ I try to use curl_multi_fdset() together with curl_multi_exec() in php5. But this doesn't work. I modelled my php code after the sample (multi-app.c) which is provided by the curl-src package. Reproduce code: --------------- this is the code I use for php5 (three single curl handles were added): while (CURLM_CALL_MULTI_PERFORM == curl_multi_exec($m, $still_running)) ; while ($still_running) { $fd = curl_multi_select($m, 1); switch($fd) { case -1: break; case 0: default: while (CURLM_CALL_MULTI_PERFORM == curl_multi_exec($m, $still_running)) ; } } Expected result: ---------------- The code should behave like the multi-app.c sample. See [curl-src]/docs/examples/multi-app.c. Actual result: -------------- The code runs in an endless loop. Because curl_multi_exec() (alias curl_multi_perform()) needs to reference the variables readfds, writefds which were set by a previous call to curl_multi_fdset(). But these fdsets have gone out of scope. The C Code works because the fdsets are still present on the stack. See man 3 curl_multi_fdset for further details. curl --version gives: curl 7.10.8 (i686-pc-linux-gnu) libcurl/7.10.8 OpenSSL/0.9.7c zlib/1.1.4 Protocols: ftp gopher ldap http file https ftps Features: SSL libz NTLM ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26332&edit=1
