perdition 1.19-rc3 log_options_ssl_str() segv

Doug Shearer <[email protected]>
Newsgroups gmane.mail.perdition.user
Message-ID <[email protected]>
I am new to this list.  We have been using perdition-1.17.1 for
the better part of two years ... thank you!  We are running perdition
on Solaris 9 and 10.  Some kind soul (can't remember who)
posted source for mkdtemp and I was able to compile using gcc
3.4.6 from www.sunfreeware.com.

We have been bitten by the Thunderbird 3.1 to perdition SSL/TLS bug.
I am trying to build and run perdition-1.19-rc3 ... so far  
unsuccessfully.
When run, perdition gives a segmentation fault.  Many thanks in  
advance to
anyone who can shed any light on this!

I built and installed vanessa_logger-0.0.10, vanessa_adt-0.0.9, and
vanessa_socket-0.0.12.

perdition-1.19-rc3 compiled (with the addition of mkdtemp and the  
following
patch):

diff perdition.c.orig perdition.c
582c582
<	  fromv = malloc(((nfrom * 2) + 1));
---
 >	  fromv = malloc(sizeof(*fromv) * ((nfrom * 2) + 1));


But when I ran it, it got a segmentation fault.

gdb session showing segmentation fault:

gdb
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html 
 >
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show  
copying"
and "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10".
(gdb) file /local/staff/mail3/opt/sbin/perdition.imap4
Reading symbols from /local/staff/mail3/opt/sbin/perdition.imap4...done.
(gdb)  b perdition.c:498
Breakpoint 1 at 0x8063e29: file perdition.c, line 498.
(gdb) r -C -d --inetd_mode \
                    -p 26993 -M /usr/local/lib/libperditiondb_ldap.so. 
0 --ssl_ca_path /etc/mail/certs \
                    --ssl_cert_file /etc/mail/certs/mail3.crt -- 
ssl_key_file /etc/mail/certs/private/mail3.key \
                    --ssl_ca_file /etc/mail/certs/CA.crt -- 
ssl_no_cn_verify --log_facility -
Starting program: /local/staff/mail3/opt/sbin/perdition.imap4 -C -d -- 
inetd_mode                    -p 26993 -M /usr/local/lib/ 
libperditiondb_ldap.so.0 --ssl_ca_path /etc/mail/ 
certs                    --ssl_cert_file /etc/mail/certs/mail3.crt -- 
ssl_key_file /etc/mail/certs/private/mail3.key                    -- 
ssl_ca_file /etc/mail/certs/CA.crt --ssl_no_cn_verify --log_facility -
Using LDAP version: 3

Breakpoint 1, main (argc=19, argv=0x8047b40, envp=0x8047b90) at  
perdition.c:498
498         if (log_options()) {
(gdb) s
log_options () at options.c:1473
1473            a = log_options_str();
(gdb) s
log_options_str () at options.c:1432
1432            a = calloc(4, sizeof(char *));
(gdb) n
1433            if (!a) {
(gdb) n
1438            a[0] = log_options_head_str();
(gdb) n
1439            if (!a[0])
(gdb) n
1441            a[1] = log_options_non_ssl_str();
(gdb) n
1442            if (!a[1])
(gdb) n
1445            a[2] = log_options_ssl_str();
(gdb) p a[0]
$1 = 0x808e390 "Starting perdition version=1.19-rc3 protocol=IMAP4"
(gdb) p a[1]
$2 = 0x808f398 "add_domain=\"\", authenticate_in=off,  
authenticate_timeout=1800, bind_address=\"\",  
client_server_specification=off, config_file=\"/usr/local/etc/ 
perdition/perdition.imap4.conf\", connection_limit=0, connec"...
(gdb) s
log_options_ssl_str () at options.c:1330
1330            char *ssl_mode_p = NULL;
(gdb) n
1331            char *out = NULL;
(gdb) n
1333            out = malloc(MAX_LINE_LENGTH);
(gdb) n
1334            if (!out) {
(gdb) n
1339            switch (opt.ssl_mode) {
(gdb) n
1347                    ssl_mode_p=ssl_mode;
(gdb) n
1348                    if (opt.ssl_mode & SSL_MODE_SSL_LISTEN &&
(gdb) n
1351                    else if (opt.ssl_mode & SSL_MODE_TLS_LISTEN &&
(gdb) n
1355                            if (opt.ssl_mode & SSL_MODE_SSL_LISTEN)
(gdb) n
1358                            if (opt.ssl_mode &  
SSL_MODE_SSL_OUTGOING)
(gdb) n
1359                                     
LOG_OPTIONS_ADD_STR("ssl_outgoing", ssl_mode_p,
(gdb) n
1361                            if (opt.ssl_mode & SSL_MODE_TLS_LISTEN)
(gdb) n
1362                                     
LOG_OPTIONS_ADD_STR("tls_listen", ssl_mode_p,
(gdb) n
1364                            if (opt.ssl_mode &  
SSL_MODE_TLS_OUTGOING)
(gdb) n
1367                            if (ssl_mode_p == ssl_mode)
(gdb) n
1372            if ((opt.ssl_mode & SSL_MODE_TLS_OUTGOING_FORCE) &&
(gdb) n
1377                    if (opt.ssl_mode&SSL_MODE_TLS_OUTGOING_FORCE)
(gdb) n
1380                    if (opt.ssl_mode&SSL_MODE_TLS_LISTEN_FORCE)
(gdb) n
1381                             
LOG_OPTIONS_ADD_STR("tls_listen_force", ssl_mode_p,
(gdb) n
1385            snprintf(out, MAX_LINE_LENGTH - 1,
(gdb) p out
$3 = 0x80903a0 ""
(gdb) p *out
$4 = 0 '\0'
(gdb) p ssl_mode
$5 = "ssl_outgoing,tls_listen,tls_listen_force"
(gdb) p opt_str(opt.ssl_ca_file)
$6 = 0x808c028 "/etc/mail/certs/CA.crt"
(gdb) p opt_str(opt.ssl_ca_path)
$7 = 0x808ba00 "/etc/mail/certs"
(gdb) p ((opt.ssl_ca_accept_self_signed)?"on":"off")
$8 = "off"
(gdb) p opt_str(opt.ssl_cert_file)
$9 = 0x808cd48 "/etc/mail/certs/mail3.crt"
(gdb) p ((opt.ssl_cert_accept_expired)?"on":"off")
$10 = "off"
(gdb) p ((opt.ssl_cert_accept_not_yet_valid)?"on":"off")
$11 = "off"
(gdb) p ((opt.ssl_cert_accept_self_signed)?"on":"off")
$12 = "off"
(gdb) p opt.ssl_cert_verify_depth
$13 = 9
(gdb) p opt_str(opt.ssl_key_file)
$14 = 0x808c9c0 "/etc/mail/certs/private/mail3.key"
(gdb) p opt_str(opt.ssl_listen_ciphers)
$15 = 0x80708a4 ""
(gdb) p opt_str(opt.ssl_outgoing_ciphers)
$16 = 0x80708a4 ""
(gdb) p ((opt.ssl_no_cert_verify)?"on":"off")
$17 = "off"
(gdb) p ((opt.ssl_no_client_cert_verify)?"on":"off")
$18 = "off"
(gdb) p ((opt.ssl_no_cn_verify)?"on":"off")
$19 = "on"
(gdb) p opt.ssl_passphrase_fd
$20 = 0
(gdb) p opt.ssl_passphrase_file
$21 = 0x0
(gdb) p opt.ssl_mask
$22 = 16918
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
0xfece58fc in strlen () from /lib/libc.so.1

Thanks!
Doug Shearer

Lamont-Doherty Earth Observatory of Columbia University
61 Route 9W
Palisades, NY 10964

______________________________________________
Perdition-users mailing list
[email protected]
http://lists.vergenet.net/listinfo/perdition-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.