[Pkg-gnupg-maint] Bug#399904: gnupg: --list-keys hangs at ctrl-C

NIIBE Yutaka gniibe at fsij.org
Fri Jul 12 05:34:25 UTC 2013


I could reproduce this bug on wheezy environment (x86_64-linux-gnu).

I got the backtrace.  It was indeed 'malloc' interrupted by
signal, and signal_handler called 'free'.

Attached is a fix.  It works for me.

(gdb) bt
#0  0x00007fb7c9aab4cb in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fb7c9a416b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fb7c9a3faa1 in free () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00000000004a6e7b in dotlock_destroy_unix (h=0x2274080) at ../../util/dotlock.c:890
#4  dotlock_destroy (h=0x2274080) at ../../util/dotlock.c:941
#5  0x00000000004a6ed8 in dotlock_remove_lockfiles () at ../../util/dotlock.c:1304
#6  0x000000000042f8ae in got_fatal_signal (sig=1) at ../../g10/signal.c:125
#7  <signal handler called>
#8  0x00007fb7c9a3d348 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#9  0x00007fb7c9a3fb90 in malloc () from /lib/x86_64-linux-gnu/libc.so.6
#10 0x00000000004a2688 in xmalloc (n=n at entry=256) at ../../util/memory.c:443
#11 0x000000000049c25a in mpi_alloc_limb_space (nlimbs=nlimbs at entry=32, secure=<optimized out>) at ../../mpi/mpiutil.c:146
#12 0x000000000049c0e2 in mpihelp_mul_karatsuba_case (prodp=0x2499470, up=0x2467420, usize=16, vp=0x2467420, vsize=vsize at entry=16, ctx=ctx at entry=0x7fff618a97f0) at ../../mpi/mpih-mul.c:388
#13 0x000000000049bd92 in mpihelp_mul (prodp=prodp at entry=0x2499470, up=up at entry=0x2467420, usize=usize at entry=16, vp=vp at entry=0x2467420, vsize=vsize at entry=16) at ../../mpi/mpih-mul.c:522
#14 0x00000000004986ea in mpi_mul (w=0x246c280, u=<optimized out>, v=<optimized out>) at ../../mpi/mpi-mul.c:187
#15 0x00000000004988b9 in mpi_mulm (w=0x246c280, u=<optimized out>, v=<optimized out>, m=0x23a2340) at ../../mpi/mpi-mul.c:211
#16 0x0000000000499568 in mpi_mulpowm (res=0x246c140, basearray=0x7fff618a99a0, exparray=<optimized out>, m=0x23a2340) at ../../mpi/mpi-mpow.c:71
#17 0x000000000048b703 in verify (pkey=0x7fff618a9a20, hash=0x23b6110, s=0x25081c0, r=0x2508130) at ../../cipher/dsa.c:349
#18 verify (r=0x2508130, s=0x25081c0, hash=0x23b6110, pkey=0x7fff618a9a20) at ../../cipher/dsa.c:318
#19 0x000000000048c0e0 in dsa_verify (algo=<optimized out>, hash=<optimized out>, data=<optimized out>, pkey=<optimized out>) at ../../cipher/dsa.c:457
#20 0x000000000042a9fb in do_check (ret_pk=0x0, digest=0x227d7f0, sig=0x2508050, pk=0x244d230, r_expired=<optimized out>, r_revoked=<optimized out>) at ../../g10/sig-check.c:293
#21 do_check (pk=0x244d230, sig=0x2508050, digest=0x227d7f0, r_expired=<optimized out>, r_revoked=<optimized out>, ret_pk=0x0) at ../../g10/sig-check.c:237
#22 0x000000000042b705 in check_key_signature2 (root=root at entry=0x24b2350, node=node at entry=0x2456cb0, check_pk=check_pk at entry=0x0, ret_pk=ret_pk at entry=0x0, is_selfsig=is_selfsig at entry=0x0, r_expiredate=r_expiredate at entry=0x0, r_expired=r_expired at entry=0x0) at ../../g10/sig-check.c:640
#23 0x000000000042b97b in check_key_signature (root=root at entry=0x24b2350, node=node at entry=0x2456cb0, is_selfsig=is_selfsig at entry=0x0) at ../../g10/sig-check.c:499
#24 0x0000000000410531 in merge_selfsigs_main (rinfo=0x7fff618a9bd0, r_revoked=<synthetic pointer>, keyblock=<optimized out>) at ../../g10/getkey.c:1838
#25 merge_selfsigs (keyblock=<optimized out>) at ../../g10/getkey.c:2319
#26 merge_selfsigs (keyblock=<optimized out>) at ../../g10/getkey.c:2298
#27 0x00000000004138fc in merge_keys_and_selfsig (keyblock=<optimized out>) at ../../g10/getkey.c:1385
#28 0x000000000042f0a2 in list_all (secret=secret at entry=0) at ../../g10/keylist.c:446
#29 0x000000000042f5cb in public_key_list (list=0x0) at ../../g10/keylist.c:107
#30 0x0000000000408f5c in main (argc=0, argv=0x7fff618aa288) at ../../g10/gpg.c:3633
-- 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpg-hangup-fix.diff
Type: text/x-patch
Size: 4378 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnupg-maint/attachments/20130712/6081e9c3/attachment.bin>


More information about the Pkg-gnupg-maint mailing list