diff options
author | Werner Koch <[email protected]> | 2008-03-25 08:33:31 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2008-03-25 08:33:31 +0000 |
commit | d7f0b3bd897c6d154f39932897021a8b8a97567f (patch) | |
tree | 19cceacc2dfacc4564991c5b5c129d364febe1bc /g10/import.c | |
parent | Fix a bug in the ambigious name detection. (diff) | |
download | gnupg-d7f0b3bd897c6d154f39932897021a8b8a97567f.tar.gz gnupg-d7f0b3bd897c6d154f39932897021a8b8a97567f.zip |
Fix bug 894.
Change default keyserver.
Allow key protection with Camellia.
Diffstat (limited to 'g10/import.c')
-rw-r--r-- | g10/import.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/g10/import.c b/g10/import.c index 41198b687..61bbef756 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1661,11 +1661,17 @@ collapse_uids( KBNODE *keyblock ) { KBNODE uid2; + if(is_deleted_kbnode(uid1)) + continue; + if(uid1->pkt->pkttype!=PKT_USER_ID) continue; for(uid2=uid1->next;uid2;uid2=uid2->next) { + if(is_deleted_kbnode(uid2)) + continue; + if(uid2->pkt->pkttype!=PKT_USER_ID) continue; @@ -1681,6 +1687,9 @@ collapse_uids( KBNODE *keyblock ) uid1 */ for(last=uid2;last->next;last=last->next) { + if(is_deleted_kbnode(last)) + continue; + if(last->next->pkt->pkttype==PKT_USER_ID || last->next->pkt->pkttype==PKT_PUBLIC_SUBKEY || last->next->pkt->pkttype==PKT_SECRET_SUBKEY) @@ -1693,13 +1702,16 @@ collapse_uids( KBNODE *keyblock ) /* Now put uid2 in place as part of uid1 */ last->next=uid1->next; uid1->next=uid2; - remove_kbnode(keyblock,uid2); + delete_kbnode(uid2); /* Now dedupe uid1 */ for(sig1=uid1->next;sig1;sig1=sig1->next) { KBNODE sig2; + if(is_deleted_kbnode(sig1)) + continue; + if(sig1->pkt->pkttype==PKT_USER_ID || sig1->pkt->pkttype==PKT_PUBLIC_SUBKEY || sig1->pkt->pkttype==PKT_SECRET_SUBKEY) @@ -1710,6 +1722,9 @@ collapse_uids( KBNODE *keyblock ) for(sig2=sig1->next,last=sig1;sig2;last=sig2,sig2=sig2->next) { + if(is_deleted_kbnode(sig2)) + continue; + if(sig2->pkt->pkttype==PKT_USER_ID || sig2->pkt->pkttype==PKT_PUBLIC_SUBKEY || sig2->pkt->pkttype==PKT_SECRET_SUBKEY) @@ -1723,7 +1738,7 @@ collapse_uids( KBNODE *keyblock ) { /* We have a match, so delete the second signature */ - remove_kbnode(&uid1,sig2); + delete_kbnode(sig2); sig2=last; } } @@ -1732,6 +1747,8 @@ collapse_uids( KBNODE *keyblock ) } } + commit_kbnode(keyblock); + if(any && !opt.quiet) { const char *key="???"; |