> > Just press Enter when popup window appears after "CONFIRM" command:
> >
> > $ pinentry
> > OK Your orders please
> > CONFIRM
> > Segmentation fault
> > $
> 
> Works for me.  Try getting a backtrace?

Eeeeer... I don't know what do you mean exactly. Should I run it under
debugger?

Under ltrace:

...
strcmp("CONFIRM", "SETDESC")                     = -16
strcmp("CONFIRM", "SETPROMPT")                   = -16
strcmp("CONFIRM", "SETERROR")                    = -16
strcmp("CONFIRM", "SETOK")                       = -16
strcmp("CONFIRM", "SETCANCEL")                   = -16
strcmp("CONFIRM", "GETPIN")                      = -4
strcmp("CONFIRM", "CONFIRM")                     = 0
initscr(0x1dcf338, 0, 1, 0, 0x8048afe)           = 0x8056c88
                                                            keypad(0x8056c88,
1,)                   = 0 0x1dcf338
free(0x8059860)                                  = <void>
free(0x8059870)                                  = <void>
strlen(NULL <unfinished ...>
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

Gotcha! It's a null pointer.
Full ltrace -S output is attached.

Regards

Gabor
SYS_uname(0xbfe62876)                            = 0
SYS_brk(NULL)                                    = 0x8051000
SYS_access(0xb7f60041, 0, 0xb7f61ff4, 0x4008000, 0) = -2
SYS_mmap2(0, 8192, 3, 34, -1)                    = 0xb7f4a000
SYS_access(0xb7f5d387, 4, 0xb7f61ff4, 0xb7f5d387, 0xb7f621e0) = -2
SYS_open("/etc/ld.so.cache", 0, 00)              = 3
SYS_fstat64(3, 0xbfe62198, 0xb7f61ff4, -1, 3)    = 0
SYS_mmap2(0, 54601, 1, 2, 3)                     = 0xb7f3c000
SYS_close(3)                                     = 0
SYS_access(0xb7f60041, 0, 0xb7f61ff4, 0, 3)      = -2
SYS_open("/lib/libncurses.so.5", 0, 01001104425) = 3
SYS_read(3, "\177ELF\001\001\001", 512)          = 512
SYS_fstat64(3, 0xbfe62218, 0xb7f61ff4, 4, 1)     = 0
SYS_mmap2(0, 264196, 5, 2050, 3)                 = 0xb7efb000
SYS_mmap2(0xb7f33000, 32768, 3, 2066, 3)         = 0xb7f33000
SYS_mmap2(0xb7f3b000, 2052, 3, 50, -1)           = 0xb7f3b000
SYS_close(3)                                     = 0
SYS_access(0xb7f60041, 0, 0xb7f61ff4, 0, 3)      = -2
SYS_open("/lib/tls/libc.so.6", 0, 01001105053)   = 3
SYS_read(3, "\177ELF\001\001\001", 512)          = 512
SYS_fstat64(3, 0xbfe621fc, 0xb7f61ff4, 4, 1)     = 0
SYS_mmap2(0, 0x13189c, 5, 2050, 3)               = 0xb7dc9000
SYS_mmap2(0xb7ef1000, 28672, 3, 2066, 3)         = 0xb7ef1000
SYS_mmap2(0xb7ef8000, 10396, 3, 50, -1)          = 0xb7ef8000
SYS_close(3)                                     = 0
SYS_access(0xb7f60041, 0, 0xb7f61ff4, 0, 3)      = -2
SYS_open("/lib/tls/libdl.so.2", 0, 026773775062) = 3
SYS_read(3, "\177ELF\001\001\001", 512)          = 512
SYS_fstat64(3, 0xbfe62168, 0xb7f61ff4, 4, 1)     = 0
SYS_mmap2(0, 4096, 3, 34, -1)                    = 0xb7dc8000
SYS_mmap2(0, 12404, 5, 2050, 3)                  = 0xb7dc4000
SYS_mmap2(0xb7dc6000, 8192, 3, 2066, 3)          = 0xb7dc6000
SYS_close(3)                                     = 0
SYS_mmap2(0, 4096, 3, 34, -1)                    = 0xb7dc3000
SYS_mprotect(0xb7ef1000, 20480, 1, 0xb7f4bd40, 0xb7dc9000) = 0
SYS_set_thread_area(0xbfe62800, 2, 32, 0xb7f61ff4, 0) = 0
SYS_munmap(0xb7f3c000, 54601)                    = 0
__libc_start_main(0x80494e0, 1, 0xbfe62a94, 0x804e2e0, 0x804e350 <unfinished 
...>
strlen("pinentry-curses")                        = 15
strcpy(0x8050600, "pinentry-curses")             = 0x8050600
mmap(0, 16384, 3, 34, -1 <unfinished ...>
SYS_mmap2(0, 16384, 3, 34, -1)                   = 0xb7f46000
<... mmap resumed> )                             = 0xb7f46000
getuid( <unfinished ...>
SYS_getuid32(16384, 16384, 3, 0xb7f46000, 0xb7f61cc0) = 1000
<... getuid resumed> )                           = 1000
mlock(0xb7f46000, 16384, 0xbfe629c8, 0x804dc38, 0xbfe629e8 <unfinished ...>
SYS_mlock(0xb7f46000, 16384, 16384, 0xb7f46000, 1000) = 0
<... mlock resumed> )                            = 0
geteuid( <unfinished ...>
SYS_geteuid32(16384, 16384, 16384, 0, 1000)      = 1000
<... geteuid resumed> )                          = 1000
getuid( <unfinished ...>
SYS_getuid32(0x804e438, 0, 0, 0, 0xb7f61cc0)     = 1000
<... getuid resumed> )                           = 1000
geteuid( <unfinished ...>
SYS_geteuid32(0x804e438, 0, 0, 0, 0xb7f61cc0)    = 1000
<... geteuid resumed> )                          = 1000
__cxa_atexit(0x804e0e0, 0, 0, 0x804e438, 0xbfe629e8) = 0
getopt_long(1, 0xbfe62a94, "degh", 0xbfe62918, NULL) = -1
getuid( <unfinished ...>
SYS_getuid32(0xb7ef6ff4, 0, 0xb7ef70d8, 0, 0xb7f61cc0) = 1000
<... getuid resumed> )                           = 1000
geteuid( <unfinished ...>
SYS_geteuid32(1000, 0, 0xb7ef70d8, 0, 0xb7f61cc0) = 1000
<... geteuid resumed> )                          = 1000
memset(0xb7f46004, '\000', 3160)                 = 0xb7f46004
memset(0xb7f46c84, '\000', 600)                  = 0xb7f46c84
strlen("OK Your orders please")                  = 21
write(1, "OK Your orders please", 21 <unfinished ...>
SYS_write(1, "OK Your orders please", 21)        = 21
<... write resumed> )                            = 21
write(1, "\n", 1 <unfinished ...>
SYS_write(1, "\n", 1)                            = 1
<... write resumed> )                            = 1
read(0,  <unfinished ...>
SYS_read(0, "CONFIRM\n", 1002)                   = 8
<... read resumed> "CONFIRM\n", 1002)            = 8
strcmp("CONFIRM", "NOP")                         = -11
strcmp("CONFIRM", "CANCEL")                      = 14
strcmp("CONFIRM", "OPTION")                      = -12
strcmp("CONFIRM", "BYE")                         = 1
strcmp("CONFIRM", "AUTH")                        = 2
strcmp("CONFIRM", "RESET")                       = -15
strcmp("CONFIRM", "END")                         = -2
strcmp("CONFIRM", "OPTION")                      = -12
strcmp("CONFIRM", "SETDESC")                     = -16
strcmp("CONFIRM", "SETPROMPT")                   = -16
strcmp("CONFIRM", "SETERROR")                    = -16
strcmp("CONFIRM", "SETOK")                       = -16
strcmp("CONFIRM", "SETCANCEL")                   = -16
strcmp("CONFIRM", "GETPIN")                      = -4
strcmp("CONFIRM", "CONFIRM")                     = 0
initscr(0x1dc8338, 0, 1, 0, 0x8048afe <unfinished ...>
SYS_ioctl(1, 21505, 0xbfe61638, 0xbfe61678, 0xb7ef6ff4) = 0
SYS_brk(NULL)                                    = 0x8051000
SYS_brk(0x8072000)                               = 0x8072000
SYS_access(0xbfe616dc, 4, 0xb7f3a428, 4, 0xbfe616dc) = -2
SYS_access(0xbfe616dc, 4, 0xb7f3a428, 4, 0xbfe616dc) = -2
SYS_access(0xbfe616dc, 4, 0xb7f3a428, 4, 0xbfe616dc) = 0
SYS_open("/lib/terminfo/x/xterm", 32768, 00)     = 3
SYS_read(3, "\032\001\034", 12)                  = 12
SYS_read(3, "xterm|X11 terminal emulator", 28)   = 28
SYS_read(3, "", 29)                              = 29
SYS_read(3, "", 1)                               = 1
SYS_read(3, "P", 30)                             = 30
SYS_read(3, "", 826)                             = 826
SYS_read(3, "\033[Z", 1318)                      = 1318
SYS_read(3, "", 10)                              = 0
SYS_close(3)                                     = 0
SYS_ioctl(1, 21505, 0xbfe61638, 0xbfe61678, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe61648, 0x8051070, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe615f8, 0xbfe61638, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21523, 0xbfe616a4, 0xb7f3b508, 0xb7f3b504) = 0
SYS_ioctl(1, 21505, 0xbfe62638, 0x8051034, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62638, 0x8051070, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62668, 0xbfe626a8, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62634, 1, 0xb7ef6ff4)   = 0
SYS_ioctl(1, 21507, 0xbfe62658, 0xbfe626e1, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62658, 0, 0xb7ef6ff4)   = 0
SYS_ioctl(1, 21505, 0xbfe62694, 1, 0xb7ef6ff4)   = 0
SYS_ioctl(1, 21507, 0xbfe626b8, 0xbfe6274d, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe626b8, 0, 0xb7ef6ff4)   = 0
SYS_rt_sigaction(20, 0, 0xbfe625c4, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(20, 0xbfe62650, 0, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(2, 0, 0xbfe62474, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(2, 0xbfe62500, 0, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(15, 0, 0xbfe62474, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(15, 0xbfe62500, 0, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(28, 0, 0xbfe62474, 8, 0xb7ef6ff4) = 0
SYS_rt_sigaction(28, 0xbfe62500, 0, 8, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62708, 0x8051070, 0xb7ef6ff4) = 0
<... initscr resumed> )                          = 0x8056c88
keypad(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338 <unfinished ...>
SYS_write(1, "\033[?1049h\033[1;24r\033[m\033(B\033[4l\033[?7h\033["..., 37) = 
37
<... keypad resumed> )                           = 0
nonl(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338) = 0
cbreak(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338 <unfinished ...>
SYS_ioctl(1, 21505, 0xbfe626b4, 1, 0xb7ef6ff4)   = 0
SYS_ioctl(1, 21507, 0xbfe626d8, 0xbfe62761, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe626d8, 0, 0xb7ef6ff4)   = 0
<... cbreak resumed> )                           = 0
noecho(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338) = 0
wrefresh(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338 <unfinished ...>
SYS_rt_sigaction(20, 0xbfe62660, 0xbfe625d4, 8, 0xb7ef6ff4) = 0
SYS_write(1, "\033[H\033[2J", 7)                 = 7
SYS_rt_sigaction(20, 0xbfe62660, 0, 8, 0xb7ef6ff4) = 0
<... wrefresh resumed> )                         = 0
has_colors(0x8056c88, 1, 0xbfe62838, 0x804b0e5, 0x1dc8338) = 1
start_color(0x1dc8338, 0, 1, 0, 0)               = 0
init_pair(1, 1, 0, 64, 0x1dc8338)                = 0
strlen("<OK>")                                   = 4
fprintf(0xb7ef7440, "%s: no LC_CTYPE known - assuming"..., "pinentry-curses" 
<unfinished ...>
SYS_write(2, "pinentry-curses: no LC_CTYPE kno"..., 52) = 52
<... fprintf resumed> )                          = 52
__strdup(0x804eb63, 0x804e46c, 0x8050600, 5, 0)  = 0x8059860
strlen("<Cancel>")                               = 8
fprintf(0xb7ef7440, "%s: no LC_CTYPE known - assuming"..., "pinentry-curses" 
<unfinished ...>
SYS_write(2, "pinentry-curses: no LC_CTYPE kno"..., 52) = 52
<... fprintf resumed> )                          = 52
__strdup(0x804eb68, 0x804e46c, 0x8050600, 9, 0)  = 0x8059870
strlen("<OK>")                                   = 4
strlen("<Cancel>")                               = 8
wmove(0x8056c88, 10, 30)                         = 0
waddch(0x8056c88, '\154')                        = 0
whline(0x8056c88, 0, 18, 60, 0x1dc8338)          = 0
wmove(0x8056c88, 10, 49)                         = 0
waddch(0x8056c88, '\153')                        = 0
wmove(0x8056c88, 11, 49)                         = 0
wvline(0x8056c88, 0, 1, 60, 0x1dc8338)           = 0
wmove(0x8056c88, 12, 30)                         = 0
waddch(0x8056c88, '\155')                        = 0
whline(0x8056c88, 0, 18, 60, 0x1dc8338)          = 0
wmove(0x8056c88, 12, 49)                         = 0
waddch(0x8056c88, '\152')                        = 0
wmove(0x8056c88, 11, 30)                         = 0
waddch(0x8056c88, '\170')                        = 0
strlen("<OK>")                                   = 4
wmove(0x8056c88, 11, 34)                         = 0
waddnstr(0x8056c88, "<OK>", -1)                  = 0
strlen("<Cancel>")                               = 8
wmove(0x8056c88, 11, 40)                         = 0
waddnstr(0x8056c88, "<Cancel>", -1)              = 0
wmove(0x8056c88, 11, 34)                         = 0
waddnstr(0x8056c88, "<OK>", -1)                  = 0
curs_set(0, 62, 0xbfe62788, 0xbfe627ec, 38 <unfinished ...>
SYS_write(1, "\033[39;49m\033[?25l", 14)         = 14
<... curs_set resumed> )                         = 1
wrefresh(0x8056c88, 0x8059860, -1, 0, 0 <unfinished ...>
SYS_rt_sigaction(20, 0xbfe62650, 0xbfe625c4, 8, 0xb7ef6ff4) = 0
SYS_poll(0xbfe626f8, 1, 0, 0xb7f3b4fc, 0xb7ef6ff4) = 0
SYS_poll(0xbfe626f8, 1, 0, 0xb7f3b4fc, 0xb7ef6ff4) = 0
SYS_write(1, "\033[11;31H\033[0m\033(0\033[39;49m\033[37m\033[40"..., 373) = 373
SYS_rt_sigaction(20, 0xbfe62650, 0, 8, 0xb7ef6ff4) = 0
<... wrefresh resumed> )                         = 0
wgetch(0x8056c88, 0x8056c88, 0xbfe62838, 0x804ad82, 0x1dc8338 <unfinished ...>
SYS_read(0, "\r", 1)                             = 1
<... wgetch resumed> )                           = 13
curs_set(1, 0, 0xbfe62838, 0x804ad9e, 13 <unfinished ...>
SYS_write(1, "\033[?12l\033[?25h", 12)           = 12
<... curs_set resumed> )                         = 0
endwin(0x1dc8338, 0, 30, 0, 0 <unfinished ...>
SYS_write(1, "\033[39;49m\r\033[24d\033[K\033[24;1H\033[?1049l"..., 40) = 40
SYS_ioctl(1, 21505, 0xbfe626f4, 1, 0xb7ef6ff4)   = 0
SYS_ioctl(1, 21507, 0xbfe62718, 0x8051055, 0xb7ef6ff4) = 0
SYS_ioctl(1, 21505, 0xbfe62718, 0, 0xb7ef6ff4)   = 0
<... endwin resumed> )                           = 0
free(0x8059860)                                  = <void>
free(0x8059870)                                  = <void>
strlen(NULL <unfinished ...>
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

Reply via email to