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

 ID:                 53578
 User updated by:    tanguy dot pruvot at gmail dot com
 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 x86
 PHP Version:        5.3.4 (Since 5.2.14/5.3)
 Block user comment: N
 Private report:     N

 New Comment:

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...


Previous Comments:
------------------------------------------------------------------------
[2010-12-20 02:07:57] tanguy dot pruvot at gmail dot com

I'm using the 5.3.4-VC6-TS version (as Apache 2.2 module)

------------------------------------------------------------------------
[2010-12-20 02:06:17] tanguy dot pruvot at gmail dot com

Please comment this line to fix the problem :



php-5.3.4\ext\openssl\openssl.c
PHP_FUNCTION(openssl_random_pseudo_bytes) line 

4898 :



#ifdef WINDOWS

        RAND_screen();

#endif

------------------------------------------------------------------------
[2010-12-20 01:31:33] [email protected]

This has been fixed in 5.3.4 (I patched curl). Which versions and builds
do you use exactly?

------------------------------------------------------------------------
[2010-12-20 01:03:56] tanguy dot pruvot at gmail dot com

>From OpenSSL 0.9.8q Sources :



The RAND_screen() function is available for the convenience of Windows

programmers. It adds the current contents of the screen to the PRNG.

For applications that can catch Windows events, seeding the PRNG by

calling RAND_event() is a significantly better source of

randomness. It should be noted that both methods cannot be used on

servers that run without user interaction.

------------------------------------------------------------------------
[2010-12-20 00:58:33] tanguy dot pruvot at gmail dot com

The last known good version was 5.2.13 (which is faster than 3 seconds
but adds a 

slow delay)

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


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

Reply via email to