After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 576520 - "Add name" that is email-adress to key results in freeze.
"Add name" that is email-adress to key results in freeze.
Status: RESOLVED FIXED
Product: seahorse
Classification: Applications
Component: general
2.26.x
Other All
: Normal critical
: 2.26.0
Assigned To: Seahorse Maintainer
Seahorse Maintainer
Depends on:
Blocks:
 
 
Reported: 2009-03-24 03:24 UTC by Andreas Moog
Modified: 2011-11-26 18:12 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26



Description Andreas Moog 2009-03-24 03:24:27 UTC
Steps to reproduce:
1. Select private key
2. Add Name
3. Put name@example.com in Name field

Note: The freeze does not happen when email is put in email-field.

Backtrace generated with CTRL-\


Stack trace:
(gdb) bt full
  • #0 __kernel_vsyscall
  • #1 ___newselect_nocancel
    from /lib/tls/i686/cmov/libc.so.6
  • #2 _gpgme_ath_select
    at ath.c line 112
  • #3 _gpgme_io_select
    at posix-io.c line 523
  • #4 _gpgme_wait_on_condition
    at wait-private.c line 82
  • #5 _gpgme_wait_one
    at wait-private.c line 143
  • #6 gpgme_op_edit
    at edit.c line 153
  • #7 edit_gpgme_key
    at seahorse-gpgme-key-op.c line 293
  • #8 edit_refresh_gpgme_key
    at seahorse-gpgme-key-op.c line 310
  • #9 edit_key
    at seahorse-gpgme-key-op.c line 331
  • #10 ok_clicked
    at seahorse-gpgme-add-uid.c line 82
  • #11 IA__g_cclosure_marshal_VOID__VOID
    at /build/buildd/glib2.0-2.20.0/gobject/gmarshal.c line 77
  • #12 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.20.0/gobject/gclosure.c line 767
  • #13 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 3244
  • #14 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 2977
  • #15 IA__g_signal_emit
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 3034
  • #16 IA__gtk_button_clicked
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkbutton.c line 1106
  • #17 gtk_button_finish_activate
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkbutton.c line 1780
  • #18 gtk_button_key_release
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkbutton.c line 1631
  • #19 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkmarshalers.c line 84
  • #20 g_type_class_meta_marshal
    at /build/buildd/glib2.0-2.20.0/gobject/gclosure.c line 878
  • #21 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.20.0/gobject/gclosure.c line 767
  • #22 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 3282
  • #23 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 2987
  • #24 IA__g_signal_emit
    at /build/buildd/glib2.0-2.20.0/gobject/gsignal.c line 3034
  • #25 gtk_widget_event_internal
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkwidget.c line 4761
  • #26 IA__gtk_propagate_event
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkmain.c line 2362
  • #27 IA__gtk_main_do_event
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkmain.c line 1601
  • #28 gdk_event_dispatch
    at /build/buildd/gtk+2.0-2.16.0/gdk/x11/gdkevents-x11.c line 2364
  • #29 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.20.0/glib/gmain.c line 1814
  • #30 g_main_context_iterate
    at /build/buildd/glib2.0-2.20.0/glib/gmain.c line 2448
  • #31 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.20.0/glib/gmain.c line 2656
  • #32 IA__gtk_main
    at /build/buildd/gtk+2.0-2.16.0/gtk/gtkmain.c line 1205
  • #33 main
    at seahorse-main.c line 103

Other information:
This seems to be a problem in libgpgme, judging from the backtrace.

Running gpg --edit-key on the command-line, trying to reproduce brings:
You selected this USER-ID:
    "name@example.com"

Please don't put the email address into the real name or the comment
Change (N)ame, (C)omment, (E)mail or (Q)uit? q

So my guess is that libgpgme or seahorse don't interpret response correctly.

Reported on Launchpad:
https://bugs.launchpad.net/bugs/291268
Comment 1 Adam Schreiber 2009-03-24 21:13:19 UTC
It's not that seahorse doesn't interpret the response correctly, gpg returns gibberish to clients of libgpgme in that case.  It oddly enough let me create a key with name@example.com as the initial uid to play with.

To see how apeshit gpg goes when you try it on the command line run

gpg --status-fd=2 --command-fd=0 --edit-key name@example.com

adduid
name@example.com
<cr>
<cr>

Then you get a never ending stream of "Please correct the error first"

The @ symbol is what triggers this so we can just check for that in the field and display an error message.
Comment 2 Pablo Castellano (IRC: pablog) 2010-01-28 18:35:23 UTC
I have reported it to gnupg:
https://bugs.g10code.com/gnupg/msg3546
Comment 3 Andreas Moog 2011-11-26 18:12:35 UTC
With a recent seahorse this works now without problems.