I sent this to your @debian.org email, which is now bouncing, so let's
try again. :)

I hope you don't mind the noise...

a.

On 2016-09-01 19:11:57, Antoine Beaupré wrote:
> Control: tags -1 +patch +pending +unreproducible
>
> On 2013-09-16 17:37:15, Joey Hess wrote:
> [...]
>>   File "/usr/lib/python2.7/dist-packages/monkeysign/gtkui.py", line 222, in 
>> __init__
>>     self.mykey.append_text(key.uidslist[0].uid)
>> AttributeError: OpenPGPkey instance has no attribute 'uidslist'
>>
>> I determined this crash was due to one of these two keys. 
>> These are old keys I have lying around, that I don't know what I used
>> them for, and that do not have a uid. I bet the lack of uid is the problem.
>>
>> sec   1024D/16D0B8EF 2003-09-11
>> ssb   1024g/FBA4BC10 2003-09-11
>>
>> sec   1024D/788A3F4C 1999-09-08
>> ssb   2048g/1950ED18 1999-09-08
>
> Hi joeyh,
>
> It's very hard to reproduce your problem because, of course, I do not
> have access to old private key material such as yours.
>
> But I have tried to fix this anyways. Please try the attached patch:
>
> From 006a29582bf891c45ba7885792eb76931185935d Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anar...@debian.org>
> Date: Thu, 1 Sep 2016 19:09:45 -0400
> Subject: [PATCH] skip keys without uids (Closes: #723152)
>
> notice how we unconditionnally set uidslist now - not sure why we were doing 
> that before
> ---
>  monkeysign/gpg.py   | 2 +-
>  monkeysign/gtkui.py | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/monkeysign/gpg.py b/monkeysign/gpg.py
> index f477e78..8864780 100644
> --- a/monkeysign/gpg.py
> +++ b/monkeysign/gpg.py
> @@ -737,7 +737,7 @@ def parse_gpg_list(self, text):
>                  pass
>              else:
>                  raise NotImplementedError(_("record type '%s' not 
> implemented") % rectype)
> -        if uidslist: self.uidslist = uidslist
> +        self.uidslist = uidslist
>  
>  
>      def __str__(self):
> diff --git a/monkeysign/gtkui.py b/monkeysign/gtkui.py
> index 394ba1e..fb285b2 100644
> --- a/monkeysign/gtkui.py
> +++ b/monkeysign/gtkui.py
> @@ -278,6 +278,9 @@ def create_secret_keys_display(self):
>                  for key in Keyring().get_keys(None, True, False).values():
>                          if key.invalid or key.disabled or key.expired or 
> key.revoked:
>                                  continue
> +                        # weird key without uids, skip (see BTS#723152)
> +                        if not key.uidslist:
> +                                continue
>                          uid = key.uidslist[0].uid
>                          self.uimanager.add_ui(self.uimanager.new_merge_id(), 
> '/menu/identity', key.fpr, key.fpr, gtk.UI_MANAGER_AUTO, True)
>                          action = gtk.RadioAction(key.fpr, "%s (%s)" % (uid, 
> key.keyid()), str(key), None, i)
> -- 
> 2.1.4
>
>
> Also available here:
>
> https://0xacab.org/monkeysphere/monkeysign/commit/006a29582bf891c45ba7885792eb76931185935d
>
> Thanks for the bug report!
>
> A.
> -- 
> La nature n'a créé ni maîtres ni esclaves
> Je ne veux ni donner ni recevoir de lois.
>                         - Denis Diderot

-- 
The reasonable man adapts himself to the world.
The unreasonable man persists in trying to adapt the world to himself.
Therefore, all progress depends on the unreasonable man.
                        - George Bernard Shaw

Reply via email to