[SunHELP] In need of some help.

Chris Hall chall at verio.net
Fri Oct 10 17:17:08 CDT 2003


 Could anyone assist me in tracking down this problem ? 

mutt-1.5.4i: Mutt is Dumping core on Solaris 2.8

I have been troubleshooting this problem for a while and i am getting very little  
help/advice in tracking down the problem. I am not sure if it is mutt itself or 
something else.

Config:
O/S: Solaris 8
GCC: version 3.3
Mutt 1.5.4i
PGP CmdLine: Version 6.5.8

Problem:

  When attempting to send an encrypted e-mail mutt with crash with a
segfault if I have a large number of keys (Estimated 15-30 keys in
the keyring) To replicte the problem

Have 31 keys in my keyring

   1: Compose a new e-mail.
   2: Hit "p".
   3: Hit "e" to encrypt.
   4: Hit "y" to send.
   5: When it says "Enter keyID for addr at domain:" Just hit "ENTER".

At this point i get the following.

  Looking for keys matching ""...Segmentation fault (core dumped)

I have noticed that if i enter a search pattern when it asks "Enter keyID for 
addr at domain:" it will work as expected. Hitting "ENTER" or a single letter (vowel 
mabee) it dumps core. Running "pgpring -5" runs just fine. I have having the same 
problem on two different solaris 8 systems with the same results.

 Has anyone else seeing/have had this problem ? 

 I ran mutt in debug mode with truss and the "pgpring -5" output to another filename.
(./pgpring.out) What i see happening is after i hit "y" to send, mutt then 
calls (in this case) "pgp_list_pubring_command=cat ./pgpring.out"
before i get prompted for "Enter keyID for addr at domain:". It apears to 
succeed. Otherewise i wouldn't get "Enter keyID for addr at domain:"

  After hitting "ENTER" at the "Enter keyID for addr at domain:" prompt
i see that mutt calls (in this case) "pgp_list_pubring_command=cat ./pgpring.out"
agian, but this time it dumps core. 

  I am not sure if i am on the right track, but Looking at the below output 
i see that ioctl() is returning EINVAL as it reads the keyring the first 
time around, and continues through and then llseek() returns ESPIPE however
it doesn't crap out untill the second call to pgp_list_pubring_command. 

 Looking at the man pages for ioctl() it states that

    EINVAL
       The request or arg argument is not valid for this device.
  
and the man page for llseek() states 

    ESPIPE
       The fildes argument is associated with a pipe or FIFO.
 

  Is this something with mutt ? My C/Debudding skills are not much more than 
Basic. 


$ file ./core
./core:         ELF 32-bit MSB core file SPARC Version 1, from 'mutt'

Stack Trace:

adb /usr/local/bin/mutt
core file = core -- program ``mutt'' on platform SUNW,Ultra-80
SIGSEGV: Segmentation Fault
$C
_pgp_compare_address(c7bcc,c7c44,c7c3f,c7bd4,c7c3f,c7bd0) + c
        [savfp=0xffbed068,savpc=0xff0cb528]
qsort(c7c44,4,c7bcc,c7c08,c7c4c,7a3f0) + 10c
        [savfp=0xffbed0c8,savpc=0x7a888]
pgp_select_key(0,0,ffbee0b0,ca218,ca218,ca23c) + b8
        [savfp=0xffbedfc8,savpc=0x7b690]
pgp_getkeybystr(0,2,c9978,20,0,0) + b4
        [savfp=0xffbee048,savpc=0x7af4c]
pgp_ask_for_key(ffbee1b0,c5970,20000,0,9a800,9a9d8) + c4
        [savfp=0xffbee140,savpc=0x78af8]
pgp_findKeys(c7668,0,0,ffbee1a0,29c04,21) + 1fc
        [savfp=0xffbee5c0,savpc=0x249c0]
crypt_get_keys(ffffffff,ffbee6a0,ffbee6a4,0,6275696c,c6c88) + 80
        [savfp=0xffbee630,savpc=0x683bc]
ci_send_message(0,c72f8,0,bf130,0,0) + d1c
        [savfp=0xffbeec48,savpc=0x2f7c8]
mutt_index_menu(bf130,1,0,0,0,0) + 1838
        [savfp=0xffbef260,savpc=0x459b0]
main(3,ffbefae4,b0c00,93800,0,0) + 9e8
        [savfp=0x0,savpc=0x1ba08]
$q

pstack ./core
core './core' of 16924: mutt -d 2
 0007a38c _pgp_compare_address (c7bcc, c7c44, c7c3f, c7bd4, c7c3f, c7bd0) + c
 ff0cb528 qsort    (c7c44, 4, c7bcc, c7c08, c7c4c, 7a3f0) + 10c
 0007a888 pgp_select_key (0, 0, ffbee0b0, ca218, ca218, ca23c) + b8
 0007b690 pgp_getkeybystr (0, 2, c9978, 20, 0, 0) + b4
 0007af4c pgp_ask_for_key (ffbee1b0, c5970, 20000, 0, 9a800, 9a9d8) + c4
 00078af8 pgp_findKeys (c7668, 0, 0, ffbee1a0, 29c04, 21) + 1fc
 000249c0 crypt_get_keys (ffffffff, ffbee6a0, ffbee6a4, 0, 6275696c, c6c88) + 80 000683bc ci_send_message (0, c72f8, 0, bf130, 0, 0) + d1c
 0002f7c8 mutt_index_menu (bf130, 1, 0, 0, 0, 0) + 1838
 000459b0 main     (3, ffbefae4, b0c00, 93800, 0, 0) + 9e8
 0001ba08 _start   (0, 0, 0, 0, 0, 0) + 5c


truss + mutt -d output. 


read(3, " y", 1)                                = 1
sigaction(SIGINT, 0xFFBEDC60, 0x00000000)       = 0
stat("/tmp/mutt-yoda-16924-0", 0xFFBEDDE8)      = 0
write(1, "1B [ 3 3 ; 1 H L o o k i".., 61)      = 61
open("/dev/null", O_RDWR)                       = 7
write(5, " m u t t _ p g p _ c o m".., 18)      = 18
write(5, " c a t   . / p g p r i n".., 17)      = 17
write(5, "\n", 1)                               = 1
pipe()                                          = 8 [9]
sigaction(SIGINT, 0xFFBE89E8, 0x000AFD64)       = 0
sigaction(SIGQUIT, 0xFFBE89E8, 0x000AFD84)      = 0
sigprocmask(SIG_BLOCK, 0x000AFD54, 0x00000000)  = 0
fork()                                          = 16927
close(9)                                        = 0
fstat64(8, 0xFFBEDB40)                          = 0
ioctl(8, TCGETA, 0xFFBEDACC)                    Err#22 EINVAL
read(8, " p u b : f : 1 0 2 3 : 1".., 5120)     = 4574
write(5, " p a r s e _ p u b _ l i".., 23)      = 23
write(5, " p u b : f : 1 0 2 3 : 1".., 87)      = 87
write(5, " '\n", 2)                             = 2
write(5, " r e c o r d   t y p e :".., 13)      = 13

<-------------- Info snipped --------------------------->

write(5, " k e y   i d :  ", 8)                 = 8
write(5, " 0 5 F D 9 9 5 4 4 7 2 0".., 16)      = 16
write(5, "\n", 1)                               = 1
write(5, " t i m e   s t a m p :  ", 12)        = 12
write(5, " 2 0 0 3 - 1 0 - 0 7", 10)            = 10
write(5, "\n", 1)                               = 1
read(8, 0x000C7BD4, 5120)                       = 0
llseek(8, 0, SEEK_CUR)                          Err#29 ESPIPE
close(8)                                        = 0
waitid(P_PID, 16927, 0xFFBEDB40, WEXITED|WTRAPPED) = 0
sigprocmask(SIG_UNBLOCK, 0x000AFD54, 0x00000000) = 0
    Received signal #18, SIGCLD [caught]
      siginfo: SIGCLD CLD_EXITED pid=16927 status=0x0000
etcontext(0xFFBED878)
sigaction(SIGQUIT, 0xFFBEDB10, 0x00000000)      = 0
sigaction(SIGINT, 0xFFBEDB10, 0x00000000)       = 0
close(7)                                        = 0
write(1, "\r E n t e r   k e y I D".., 52)      = 52
sigaction(SIGINT, 0xFFBEDD70, 0x00000000)       = 0
poll(0xFFBEDC10, 1, 10000)      (sleeping...)
poll(0xFFBEDC10, 1, 10000)                      = 1
read(3, "\r", 1)                                = 1
sigaction(SIGINT, 0xFFBEDD70, 0x00000000)       = 0
write(1, "\r L o o k i n g   f o r".., 35)      = 35
open("/dev/null", O_RDWR)                       = 7
write(5, " m u t t _ p g p _ c o m".., 18)      = 18
write(5, " c a t   . / p g p r i n".., 17)      = 17
write(5, "\n", 1)                               = 1
pipe()                                          = 8 [9]
sigaction(SIGINT, 0xFFBE88F0, 0x000AFD64)       = 0
sigaction(SIGQUIT, 0xFFBE88F0, 0x000AFD84)      = 0
sigprocmask(SIG_BLOCK, 0x000AFD54, 0x00000000)  = 0
fork()                                          = 16929
close(9)                                        = 0
fstat64(8, 0xFFBEDA48)                          = 0
ioctl(8, TCGETA, 0xFFBED9D4)                    Err#22 EINVAL
read(8, " p u b : f : 1 0 2 3 : 1".., 5120)     = 4574
write(5, " p a r s e _ p u b _ l i".., 23)      = 23
write(5, " p u b : f : 1 0 2 3 : 1".., 87)      = 87
write(5, " '\n", 2)                             = 2
write(5, " r e c o r d   t y p e :".., 13)      = 13


<-------------- Info snipped --------------------------->

write(5, " p u b k e y   a l g o r".., 18)      = 18
write(5, " 1 6\n", 3)                           = 3
write(5, " k e y   i d :  ", 8)                 = 8
write(5, " 0 5 F D 9 9 5 4 4 7 2 0".., 16)      = 16
write(5, "\n", 1)                               = 1
write(5, " t i m e   s t a m p :  ", 12)        = 12
write(5, " 2 0 0 3 - 1 0 - 0 7", 10)            = 10
write(5, "\n", 1)                               = 1
read(8, 0x000C7BD4, 5120)                       = 0
llseek(8, 0, SEEK_CUR)                          Err#29 ESPIPE
close(8)                                        = 0
waitid(P_PID, 16929, 0xFFBEDA48, WEXITED|WTRAPPED) = 0
sigprocmask(SIG_UNBLOCK, 0x000AFD54, 0x00000000) = 0
    Received signal #18, SIGCLD [caught]
      siginfo: SIGCLD CLD_EXITED pid=16929 status=0x0000
setcontext(0xFFBED780)
sigaction(SIGQUIT, 0xFFBEDA18, 0x00000000)      = 0
sigaction(SIGINT, 0xFFBEDA18, 0x00000000)       = 0
close(7)                                        = 0
    Incurred fault #6, FLTBOUNDS  %pc = 0x0007A38C
      siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
    Received signal #11, SIGSEGV [default]
      siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
        *** proces killed ***



mutt -v

Mutt 1.5.4i (2003-03-19)
Copyright (C) 1996-2002 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.

System: SunOS 5.8 (sun4u) [using slang 10404]
Compile options:
-DOMAIN
+DEBUG
-HOMESPOOL  -USE_SETGID  +USE_DOTLOCK  -DL_STANDALONE  
-USE_FCNTL  -USE_FLOCK
+USE_POP  -USE_IMAP  -USE_GSS  -USE_SSL  -USE_SASL  -USE_SASL2  
+HAVE_REGCOMP  -USE_GNU_REGEX  
+HAVE_COLOR  -HAVE_START_COLOR  -HAVE_TYPEAHEAD  -HAVE_BKGDSET  
-HAVE_CURS_SET  -HAVE_META  -HAVE_RESIZETERM  
+CRYPT_BACKEND_CLASSIC_PGP  +CRYPT_BACKEND_CLASSIC_SMIME  -CRYPT_BACKEND_GPGME  +BUFFY_SIZE -EXACT_ADDRESS  -SUN_ATTACHMENT  
+ENABLE_NLS  +LOCALES_HACK  +HAVE_WC_FUNCS  +HAVE_LANGINFO_CODESET  +HAVE_LANGINFO_YESEXPR  
-HAVE_ICONV  -ICONV_NONTRANS  -HAVE_LIBIDN  +HAVE_GETSID  +HAVE_GETADDRINFO  
ISPELL="/usr/local/bin/ispell"
SENDMAIL="/usr/lib/sendmail"
MAILPATH="/var/mail"
PKGDATADIR="/usr/local/share/mutt"
SYSCONFDIR="/usr/local/etc"
EXECSHELL="/bin/sh"
-MIXMASTER
To contact the developers, please mail to <mutt-dev at mutt.org>.
To report a bug, please use the flea(1) utility.



Name: Chris Hall
Rank: ??
Serial: chall at noc.verio.net, chall at verio.net



More information about the SunHELP mailing list