diff options
author | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:36 +0900 |
---|---|---|
committer | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:36 +0900 |
commit | 214479142a766516e8770c3e1a3b0b0cc37c239e (patch) | |
tree | 43ff2d595b2e19d2f3e35ce6cf74a9e4a63ab3e7 /src/key.c | |
parent | 3a4efa5aa27f73c93a1b020b8b30f07f0b4e46c7 (diff) | |
download | gpgme-99c6dc5d2c80ae6918702e902f93b1d4b7e735f7.tar.gz gpgme-99c6dc5d2c80ae6918702e902f93b1d4b7e735f7.tar.bz2 gpgme-99c6dc5d2c80ae6918702e902f93b1d4b7e735f7.zip |
Imported Upstream version 1.9.0upstream/1.9.0
Diffstat (limited to 'src/key.c')
-rw-r--r-- | src/key.c | 39 |
1 files changed, 15 insertions, 24 deletions
@@ -236,11 +236,13 @@ _gpgme_key_append_name (gpgme_key_t key, const char *src, int convert) &uid->comment, dst); uid->address = _gpgme_mailbox_from_userid (uid->uid); - if (uid->address && uid->email && !strcmp (uid->address, uid->email)) + if ((!uid->email || !*uid->email) && uid->address && uid->name + && !strcmp (uid->name, uid->address)) { - /* The ADDRESS is the same as EMAIL: Save some space. */ - free (uid->address); - uid->address = uid->email; + /* 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) @@ -339,14 +341,10 @@ gpgme_key_unref (gpgme_key_t key) while (subkey) { gpgme_subkey_t next = subkey->next; - if (subkey->fpr) - free (subkey->fpr); - if (subkey->curve) - free (subkey->curve); - if (subkey->keygrip) - free (subkey->keygrip); - if (subkey->card_number) - free (subkey->card_number); + free (subkey->fpr); + free (subkey->curve); + free (subkey->keygrip); + free (subkey->card_number); free (subkey); subkey = next; } @@ -386,22 +384,15 @@ gpgme_key_unref (gpgme_key_t key) tofu = tofu_next; } - if (uid->address && uid->address != uid->email) - free (uid->address); - + free (uid->address); free (uid); uid = next_uid; } - if (key->issuer_serial) - free (key->issuer_serial); - if (key->issuer_name) - free (key->issuer_name); - - if (key->chain_id) - free (key->chain_id); - if (key->fpr) - free (key->fpr); + free (key->issuer_serial); + free (key->issuer_name); + free (key->chain_id); + free (key->fpr); free (key); } |