On Fri, Dec 04, 1998, Larry Mulcahy wrote:
> I have built mod_ssl with mod_ssl-2.1.0-1.3.3, apache_1.3.3,
> SSLeay-0.9.0b,
> rsaref-2.0.
>
> Platform is gcc 2.8.1 on an SGI Indigo2 (irix-gcc).
>
> When I start up the web server with 'apachectl startssl', the non-SSL
> access works OK, but attempting SSL access causes the httpd process to
> core dump with a message like:
>
> [Fri Dec 4 11:01:49 1998] [notice] httpd: child pid 52054 exit signal
> Segmentation fault (11), possible coredump in /disk16/httpd/apache-1.3.3
>
> I rebuilt everything with the '-g' option and by examining the core file
> with gdb, found that the error occurs in a function called RSA_flags:
>
> (gdb) bt
> #0 0x41926e0 in RSA_flags (r=0x100abc50) at rsa_lib.c:246
> #1 0x415c130 in ssl_set_pkey (c=0x100bb578, pkey=0x100b9cd8) at
> ssl_rsa.c:235
> #2 0x415c024 in SSL_use_RSAPrivateKey (ssl=0x100bb468, rsa=0x100abc50)
> at ssl_rsa.c:211
> #3 0x4143668 in ssl_hook_NewConnection (conn=0x100c2e60)
> at ssl_engine_kernel.c:195
> #4 0x1001231c in ap_start_restart ()
> #5 0x1001231c in ap_start_restart ()
> #6 0x1001231c in ap_start_restart ()
> #7 0x1001231c in ap_start_restart ()
> #8 0x1001231c in ap_start_restart ()
> #9 0x1001231c in ap_start_restart ()
> Cannot access memory at address 0x3c0e881.
>
> Any idea how to proceed? I re-downloaded rsaref20.tar.Z from
> ftp://ftp.rsa.com/rsaref/ today in an effort to make sure I had the
> right one.
Have you noticed this paragraph in mod_ssl's INSTALL file?
NOTE: RSAref has some portability problems. Especially it assumes that
an `unsigned long int' represents a four byte word. One result of
this bad assumption is that it fails under run-time (not
compile-time) on platforms/CPUs, like Alphas, where larger integer
sizes are used by the compiler. For instance when mod_ssl's `make
certificate' command hangs, you get memory faults or Apache hangs
when connecting to it through HTTPS, this all indicates that you
ran into this portability problem. The solution is to replace the
`typedef unsigned long int UINT4' in rsaref-2.0/source/global.h,
line 26. The best is to use `typedef u_int32_t UINT4' when
`u_int32_t' is defined by your vendor include files. If not try to
use a standard type which is four bytes in length on your
platform, e.g. on Alphas `typedef unsigned int UINT4' works.
Perhaps your SGI box has a similar problem?
Ralf S. Engelschall
[EMAIL PROTECTED]
www.engelschall.com
______________________________________________________________________
Apache Interface to SSLeay (mod_ssl) www.engelschall.com/sw/mod_ssl/
Official Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]