#48203 [Asn]: crash when CURLOPT_STDERR is set to regular file
| From: | jani@php.net | Date: | Tue, 26 May 2009 12:34:49 +0000 |
| Subject: | #48203 [Asn]: crash when CURLOPT_STDERR is set to regular file | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-137751@lists.php.net to get a copy of this message | ||
ID: 48203
Updated by: jani@php.net
Reported By: php-bug at paulsohier dot nl
Status: Assigned
Bug Type: cURL related
Operating System: *
PHP Version: 5.*, 6CVS (2009-05-09)
Assigned To: jani
New Comment:
This fixes all the test cases I could come up with:
http://pecl.php.net/~jani/patches/bug48203.patch
Even the quite insane ones too. It falls back to using STDERR which is
the default anyway if the file pointer is closed prematurely.
Previous Comments:
------------------------------------------------------------------------
[2009-05-26 06:09:24] jani@php.net
It's also the bad implementation for CURLOPT_STDERR which causes such
problems. It should be handled using the debugging facilities in cURL.
------------------------------------------------------------------------
[2009-05-10 16:27:48] jani@php.net
It's about the order in which stuff is freed/destroyed. Common problem
with some other extensions as well.
------------------------------------------------------------------------
[2009-05-09 21:35:15] php-bug at paulsohier dot nl
We just tried it with some more different hosts, and it happens at at
least google.nl and nu.nl as well.
Also, adding the curl_close() to the end fixs the problem. But should
php's GC not do the same call internally?
------------------------------------------------------------------------
[2009-05-09 21:30:58] jani@php.net
Mark:
CURLOPT_STDERR
Pass a FILE * as parameter. Tell libcurl to use this stream instead of
stderr when showing the progress meter and displaying CURLOPT_VERBOSE
data.
------------------------------------------------------------------------
[2009-05-09 21:30:12] jani@php.net
Adding this as last line also fixes the problem (ie. reset to
default..)
curl_setopt($ch, CURLOPT_STDERR, STDERR);
I don't know why the other hosts work and other don't. Propably there's
some traffic / error and the file handle gets destroyed or otherwise
mangled during shutdown and curl then tries to use it..
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/48203
--
Edit this bug report at http://bugs.php.net/?id=48203&edit=1