poldi bug: SIGSEGV if no reader

Lionel Elie Mamane lionel at mamane.lu
Thu Feb 16 22:26:52 CET 2006


Hi,

I found a bug in poldi; I didn't find a poldi category on
http://bugs.gnupg.org/cgi-bin/gnatsweb.pl?database=gnupg, so I send it
here.


When pcscd is running, but no reader is connected, poldi makes the
program segfault. Here is a backtrace:

 #0  0xb7e7e15a in strcmp () from /lib/tls/i686/cmov/libc.so.6
 #1  0xb7e92bc7 in __tzstring () from /lib/tls/i686/cmov/libc.so.6
 #2  0xb7e93e80 in __tzfile_compute () from /lib/tls/i686/cmov/libc.so.6
 #3  0xb7e93a18 in __tz_convert () from /lib/tls/i686/cmov/libc.so.6
 #4  0xb7e91d8d in localtime_r () from /lib/tls/i686/cmov/libc.so.6
 #5  0xb7eddd24 in vsyslog () from /lib/tls/i686/cmov/libc.so.6
 #6  0xb7b89183 in log_get_stream () from /lib/security/pam_poldi.so
 #7  0xb7b89416 in log_error () from /lib/security/pam_poldi.so
 #8  0xb7b82f33 in pam_sm_authenticate () from /lib/security/pam_poldi.so
 #9  0xb7f4ca9a in _pam_dispatch () from /lib/libpam.so.0
 #10 0xb7f4ed9e in pam_authenticate () from /lib/libpam.so.0

and an strace (5 is the socket used to communicate with pcscd):

close(5)                                = 0
open("/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB.utf8/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libgpg-error.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
time([1140124486])                      = 1140124486
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++

and an ltrace:

pam_set_item(0x80707f8, 9, 0xbfbbc06c, 0xbfbbc16c, 0)                          = 0
pam_get_item(0x80707f8, 2, 0xbfbbc348, 0xbfbbc16c, 0)                          = 0
pam_set_item(0x80707f8, 2, 0, 0xbfbbc16c, 0)                                   = 0
pam_authenticate(0x80707f8, 0, 0, 0xbfbbc16c, 0 <unfinished ...>
misc_conv(1, 0xbfbb9d68, 0xbfbb9d64, 0, 0x6cebf48)                             = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++



Besides the wait-timeout option is not documented (but should really
be set by default!).


Thanks for your attention to this,

-- 
Lionel



More information about the Gnupg-devel mailing list