Thanks for your reply.

I use OpenSSL 0.9.8g 19 Oct 2007.
I compiled the library from source on a Redhat Linux Enterprise. The output of 
`uname -a`:
Linux www.mysite.com 2.6.9-55.0.2.ELsmp #1 SMP Tue Jun 12 17:59:08 EDT 2007 
i686 i686 i386 GNU/Linux
The compiler used was the gnu c compiler, I think (I used the default steps in 
compiling)...
The same compiler was used with my project...
The linker I used with my main executable is g++.

I provided the following locking functions:
------------------------------------------------------------------------------------
static void locking_function(int mode, int n, const char *file, int line)
static unsigned long id_function(void)
------------------------------------------------------------------------------------

Before calling SSL_read I assured that the buffer (used as the second 
parameter) was allocated.

Any other suggestions or questions?
Thanks for your time!
Regards, 
Scerbatiuc Ion


----- Original Message ----
From: Kyle Hamilton <[EMAIL PROTECTED]>
To: openssl-users@openssl.org
Sent: Friday, April 18, 2008 2:14:03 PM
Subject: Re: Segmentation fault in SSL_read() (Re-post)

My initial idea would be that you're passing in an invalid pointer to
SSL_read.  Does this happen with, say, openssl s_client?

Remember a couple of things:

1) You MUST use the proper version of the library (debug or release)
with the appropriate build setting in your project (debug or release).
2) You MUST provide the appropriate locking functions.
3) You MUST provide the appropriate malloc that your main binary is using.

(This is all stuff documented in the FAQ.)

How did you obtain this version of the library?  What version of the
library code is it?  What compiler are you using for your main
executable?  What compiler was used to create the library?  What
linker was used for all of it?

-Kyle H

On Fri, Apr 18, 2008 at 3:15 AM, Ion Scerbatiuc <[EMAIL PROTECTED]> wrote:
>
> Sorry for the fist post. It seems like I have some problems with the other
> email client. A new try :)
> I have wrote a multi-threaded server (UNIX) and I use OpenSSL for encrypting
> communication between
> the server and the client (the client is an MFC application, but I think
> this
> doesn't matter...).
> Server is running fine but randomly it crashes and every time in SSL_read()
> method.
> Here is a snippet from one of the core dumps:
> ------------------------------------------------------------------------
> Core was generated by `/opt/whozin/wnsd_test -l'.
> Program terminated with signal 11, Segmentation fault.
> Reading symbols from /usr/lib/libccext2-1.5.so.0...done.
> Loaded symbols for /usr/lib/libccext2-1.5.so.0
> Reading symbols from /usr/lib/libccgnu2-1.5.so.0...done.
> Loaded symbols for /usr/lib/libccgnu2-1.5.so.0
> Reading symbols from /usr/lib/libboost_regex.so.1...done.
> Loaded symbols for /usr/lib/libboost_regex.so.1
> Reading symbols from /lib/tls/libpthread.so.0...done.
> Loaded symbols for /lib/tls/libpthread.so.0
> Reading symbols from /usr/lib/libdaemon.so.0...done.
> Loaded symbols for /usr/lib/libdaemon.so.0
> Reading symbols from /lib/libssl.so.4...done.
> Loaded symbols for /lib/libssl.so.4
> Reading symbols from /lib/libcrypto.so.4...done.
> Loaded symbols for /lib/libcrypto.so.4
> Reading symbols from /usr/lib/liblog4cxx.so.9...done.
> Loaded symbols for /usr/lib/liblog4cxx.so.9
> Reading symbols from /usr/lib/libstdc++.so.6...done.
> Loaded symbols for /usr/lib/libstdc++.so.6
> Reading symbols from /lib/tls/libm.so.6...done.
> Loaded symbols for /lib/tls/libm.so.6
> Reading symbols from /lib/libgcc_s.so.1...done.
> Loaded symbols for /lib/libgcc_s.so.1
> Reading symbols from /lib/tls/libc.so.6...done.
> Loaded symbols for /lib/tls/libc.so.6
> Reading symbols from /lib/tls/librt.so.1...done.
> Loaded symbols for /lib/tls/librt.so.1
> Reading symbols from /usr/lib/libz.so.1...done.
> Loaded symbols for /usr/lib/libz.so.1
> Reading symbols from /lib/ld-linux.so.2...done.
> Loaded symbols for /lib/ld-linux.so.2
> Reading symbols from /usr/lib/libgssapi_krb5.so.2...done.
> Loaded symbols for /usr/lib/libgssapi_krb5.so.2
> Reading symbols from /usr/lib/libkrb5.so.3...done.
> Loaded symbols for /usr/lib/libkrb5.so.3
> Reading symbols from /lib/libcom_err.so.2...done.
> Loaded symbols for /lib/libcom_err.so.2
> Reading symbols from /usr/lib/libk5crypto.so.3...done.
> Loaded symbols for /usr/lib/libk5crypto.so.3
> Reading symbols from /lib/libresolv.so.2...done.
> Loaded symbols for /lib/libresolv.so.2
> Reading symbols from /lib/libdl.so.2...done.
> Loaded symbols for /lib/libdl.so.2
> Reading symbols from /usr/lib/libxml2.so.2...done.
> Loaded symbols for /usr/lib/libxml2.so.2
> Reading symbols from /lib/libnss_files.so.2...done.
> Loaded symbols for /lib/libnss_files.so.2
> Reading symbols from /lib/libnss_dns.so.2...done.
> Loaded symbols for /lib/libnss_dns.so.2
> #0  0x00c9b7a0 in SSL_read () from /lib/libssl.so.4
> (gdb) bt
> #0  0x00c9b7a0 in SSL_read () from /lib/libssl.so.4
> #1  0x0805b27b in wns::ServerPort::pending (this=0xb6014d38) at
> serverport.cpp:85
> #2  0x00d2f241 in ost::SocketService::run (this=0x9fb1c78) at
> socketport.cpp:748
> #3  0x002c713d in ccxx_exec_handler (th=0x9fb1c78) at thread.cpp:1097
> #4  0x00a813cc in start_thread () from /lib/tls/libpthread.so.0
> #5  0x009d9c3e in clone () from /lib/tls/libc.so.6
> ------------------------------------------------------------------------
>
> I also made a disassembly:
>
> ------------------------------------------------------------------------
> (gdb) disass
> Dump of assembler code for function SSL_read:
> 0x00c9b75b <SSL_read+0>:        push   %ebp
> 0x00c9b75c <SSL_read+1>:        mov    %esp,%ebp
> 0x00c9b75e <SSL_read+3>:        push   %ebx
> 0x00c9b75f <SSL_read+4>:        call   0xc867ce <SSLv2_method+258>
> 0x00c9b764 <SSL_read+9>:        add    $0x130f4,%ebx
> 0x00c9b76a <SSL_read+15>:       sub    $0x14,%esp
> 0x00c9b76d <SSL_read+18>:       mov    0x8(%ebp),%ecx
> 0x00c9b770 <SSL_read+21>:       mov    0x20(%ecx),%eax
> 0x00c9b773 <SSL_read+24>:       test   %eax,%eax
> 0x00c9b775 <SSL_read+26>:       je     0xc9b7a9 <SSL_read+78>
> 0x00c9b777 <SSL_read+28>:       testb  $0x2,0x30(%ecx)
> 0x00c9b77b <SSL_read+32>:       je     0xc9b78c <SSL_read+49>
> 0x00c9b77d <SSL_read+34>:       movl   $0x1,0x18(%ecx)
> 0x00c9b784 <SSL_read+41>:       xor    %eax,%eax
> 0x00c9b786 <SSL_read+43>:       add    $0x14,%esp
> 0x00c9b789 <SSL_read+46>:       pop    %ebx
> 0x00c9b78a <SSL_read+47>:       pop    %ebp
> 0x00c9b78b <SSL_read+48>:       ret
> 0x00c9b78c <SSL_read+49>:       mov    0x10(%ebp),%edx
> 0x00c9b78f <SSL_read+52>:       mov    0x8(%ecx),%eax
> 0x00c9b792 <SSL_read+55>:       mov    %edx,0x8(%esp)
> 0x00c9b796 <SSL_read+59>:       mov    0xc(%ebp),%edx
> 0x00c9b799 <SSL_read+62>:       mov    %ecx,(%esp)
> 0x00c9b79c <SSL_read+65>:       mov    %edx,0x4(%esp)
> 0x00c9b7a0 <SSL_read+69>:       call   *0x18(%eax)
> 0x00c9b7a3 <SSL_read+72>:       add    $0x14,%esp
> 0x00c9b7a6 <SSL_read+75>:       pop    %ebx
> 0x00c9b7a7 <SSL_read+76>:       pop    %ebp
> 0x00c9b7a8 <SSL_read+77>:       ret
> 0x00c9b7a9 <SSL_read+78>:       lea    0xffffad32(%ebx),%eax
> 0x00c9b7af <SSL_read+84>:       movl   $0x345,0x10(%esp)
> 0x00c9b7b7 <SSL_read+92>:       movl   $0x114,0x8(%esp)
> 0x00c9b7bf <SSL_read+100>:      mov    %eax,0xc(%esp)
> 0x00c9b7c3 <SSL_read+104>:      movl   $0xdf,0x4(%esp)
> 0x00c9b7cb <SSL_read+112>:      movl   $0x14,(%esp)
> 0x00c9b7d2 <SSL_read+119>:      call   0xc85c68
> 0x00c9b7d7 <SSL_read+124>:      mov    $0xffffffff,%eax
> 0x00c9b7dc <SSL_read+129>:      jmp    0xc9b786 <SSL_read+43>
> End of assembler dump.
> --------------------------------------------------------------------------
>
> The crash is always in the line 0x00c9b770 <SSL_read+21>:       mov
> 0x20(%ecx),%eax
> Can anyone suggest me what to do?
>
> Thanks for your
>  time!
> Regards,
> Scerbatiuc Ion
>
>  ________________________________
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it
> now.
______________________________________________________________________
OpenSSL Project                                http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                          [EMAIL PROTECTED]



      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

Reply via email to