Bug #53578 [Opn]: php_curl init time (3 big seconds)

From: Date: Mon, 20 Dec 2010 10:14:39 +0000
Subject: Bug #53578 [Opn]: php_curl init time (3 big seconds)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-157118@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=53578&edit=1

 ID:                 53578
 Updated by:         pajoye@php.net
 Reported by:        tanguy dot pruvot at gmail dot com
 Summary:            php_curl init time (3 big seconds)
 Status:             Open
 Type:               Bug
 Package:            cURL related
 Operating System:   Win7/Vista x86
 PHP Version:        5.3.4 (Since 5.2.14/5.3)
 Block user comment: N
 Private report:     N

 New Comment:

btw, I just applied this change to my tree as well:

https://github.com/pierrejoye/curl

nmake /f Makefile.vc9 WINDOWS_SSPI=1 USE_IPV6=1
WITH_DEVEL=g:\php-sdk\lib_builds\vc9\x86\deps
CFG=release-ssh2-ssl-dll-zlib

to build it for PHP's VC9 (with almost all protocols, incl. ssh2). As
long as you copied the dependencies in ..\deps (like for php's builds).


Previous Comments:
------------------------------------------------------------------------
[2010-12-20 10:42:34] pajoye@php.net

As I said, the libcurl previous release (for our build only) has been
modified to do not call this function anymore. The latest libcurl
release should have the fix too.

------------------------------------------------------------------------
[2010-12-20 10:12:20] tanguy dot pruvot at gmail dot com

Just to confirm :

I tried all 5.3.4 and 5.2.16 versions (TS/NTS VC6/VC9), even a self
compiled one 
from sources and the problem always appears on Vista and Seven x86

I posted a bug report to curl team... but i cant find RAND_screen() call
in their 
lastest release...

------------------------------------------------------------------------
[2010-12-20 07:43:47] tanguy dot pruvot at gmail dot com

Ok, hmm after a night of debug, i think the code is in the static
libcurl_a.lib

i've tried to build a module with standard libcurl dlls (php_curl of
64k).... but 
seems to have a bad address for the curl_global_init() call

I think we need to follow this issue to curl team :p

------------------------------------------------------------------------
[2010-12-20 04:03:25] tanguy dot pruvot at gmail dot com

If you want to try the difference, here is the patched php_curl dll.

http://tanguy.wdscript.fr/files/php_curl.534vc6ts.Patched.zip

I'm now compiling php with openssl comment... to check if its the cause
of the 
problem... i dont understand why this code is in php_curl dll code...

------------------------------------------------------------------------
[2010-12-20 02:34:29] tanguy dot pruvot at gmail dot com

Here is an asm dump of lib_curl.dll 5.3.4 VC6 TS where RAND_screen is
used :

0035DB10   > \E8 FF360100   call    <jmp.&SSLEAY32.#74>
0035DB15   .  E8 F4360100   call    <jmp.&SSLEAY32.#183>
0035DB1A   .  85C0          test    eax, eax                            
                         
;  kernel32.BaseThreadInitThunk
0035DB1C   .  75 01         jnz     short php_curl.0035DB1F
0035DB1E   .  C3            ret
0035DB1F   >  E8 E4360100   call    
<jmp.&LIBEAY32.#3212_OPENSSL_add_all_algorithms_noconf>
0035DB24   .  E8 D9360100   call    <jmp.&LIBEAY32.#468_RAND_screen>
0035DB29   .  B8 01000000   mov     eax, 1
0035DB2E   .  C3            ret


A simple replace of E8 D9360100 by 90 90909090 will fix the problem...
but maybe 
a call to the regular rand() function could be needed elsewhere...

------------------------------------------------------------------------


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/bug.php?id=53578


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53578&edit=1


Thread (30 messages)

« previous php.bugs (#157118) next »