[Pkg-gnupg-commit] [gpgme] 43/132: core: Improve mailbox only uid handling

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Apr 26 01:01:21 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gpgme.

commit a28d31fdb623f2ee30e8094d09f1a0d1ae446a9b
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Wed Feb 1 16:16:22 2017 +0100

    core: Improve mailbox only uid handling
    
    * src/key.c (_gpgme_key_append_name): Set email and remove name
    for uid only keys.
    
    --
    If we have a name and no email but the name can be parsed as
    an address we now treat the address as email and remove the name.
    
    This fixes downstream users that rely on email to show email
    addresses and don't expilicity handle this case.
    
    E.g. A userid foo at example.com was:
    uid->name = "foo at example.com"
    uid->email = ""
    uid->address = "foo at example.com"
    
    It is now:
    uid->name = ""
    uid->email = "foo at example.com"
    uid->address = "foo at example.com"
---
 src/key.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/key.c b/src/key.c
index 38acc71..fed020e 100644
--- a/src/key.c
+++ b/src/key.c
@@ -242,6 +242,14 @@ _gpgme_key_append_name (gpgme_key_t key, const char *src, int convert)
       free (uid->address);
       uid->address = uid->email;
     }
+  if ((!uid->email || !*uid->email) && uid->address && uid->name
+      && !strcmp (uid->name, uid->address))
+    {
+      /* Name and address are the same. This is a mailbox only key.
+         Use address as email and remove name. */
+      *uid->name = '\0';
+      uid->email = uid->address;
+    }
 
   if (!key->uids)
     key->uids = uid;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list