> [EMAIL PROTECTED] - Tue Oct 21 14:23:50 2008]:
> 
> Hello rt,
> 
>   During stress testing my project, suddenly got crash inside openssl
> 
>   openssl version - openssl-0.9.8i
>   compiler - Microsoft Visual Studio 2008 Professional Edition (C++
> project)
>   project - x64 debug compilation
>   OS - Microsoft Windows XP x64 Edition Service Pack 2
> 
>   usage example:
>         __inline void Rand(unsigned char* pBuf, uintptr_t nSize)
>         {
>                 RAND_pseudo_bytes(pBuf,int(nSize));
>         }
>         __inline uintptr_t Rand(void)
>         {
>                 uintptr_t       nRet;
>                 Rand(reinterpret_cast<unsigned
> char*>(&nRet),sizeof(uintptr_t));
>                 return nRet;
>         }
> 
>         uintptr_t = Rand();
> 
>   stress test:
>   my code executing Rand() repeately in two threads with
>   100% loading of Dual Core CPU, in 100k-300k calls application
>   crashes. no need to wait long :)
> 
>   crash:
>   0xc0000005 (ACCESS_VIOLATION)
>   sha1_block_data_order d:\libraryes\openssl-
> 0.9.8i\crypto\sha\sha_locl.h (259)
> 
>   where is wrong:
>   ssleay_rand_bytes   d:\libraryes\openssl-
> 0.9.8i\crypto\rand\md_rand.c (474)
> 
>   crypto\rand\md_rand.c line 470:
>   k=(st_idx+MD_DIGEST_LENGTH/2)-st_num; <------- something wrong
> around this line
> 
>   with this data I'm getting crash:
>   st_idx = 1032
>   st_num = 1023
>   k=(st_idx+MD_DIGEST_LENGTH/2)-st_num; // k == 19
> 
>   // MD_DIGEST_LENGTH/2-k == -9
>   MD_Update(&m,&(state[st_idx]),MD_DIGEST_LENGTH/2-k); // with -9 it
> will crash
> 
>   I'm getting 100% crashes at each stress test. :(

Hmm, that is odd. STATE_SIZE is 1024, so there must not be st_idx
with a value larger than 1023. Upon call st_idx is set from state_index.

As your application is using threads: have you made sure that proper
locking functions are activated? A failure to properly lock the threads
while updating st_idx and friends would explain a failure like this.

Best regards,
    Lutz
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to