aboutsummaryrefslogtreecommitdiffstats
path: root/g10/trustdb.c
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2005-11-10 23:16:34 +0000
committerDavid Shaw <[email protected]>2005-11-10 23:16:34 +0000
commit843d5719e79eb82f166fc7f37fcf323b556d256f (patch)
tree1910fd116bc62f0a0a4bb2a6a8328588c959c1e2 /g10/trustdb.c
parent* packet.h: Move some flags to a bitfield. Change all callers. (diff)
downloadgnupg-843d5719e79eb82f166fc7f37fcf323b556d256f.tar.gz
gnupg-843d5719e79eb82f166fc7f37fcf323b556d256f.zip
* packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
(clean_uids_from_key): Fix display bug where sigs cleaned for other reasons caused a uid to appear as if it had been compacted.
Diffstat (limited to '')
-rw-r--r--g10/trustdb.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 47c418688..dbcab271a 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -1667,8 +1667,9 @@ int
clean_uids_from_key(KBNODE keyblock,int noisy)
{
int delete_until_next=0,deleting=0,deleted=0;
- KBNODE node,signode=NULL;
+ KBNODE node;
u32 keyid[2],sigdate=0;
+ PKT_user_id *uid=NULL;
assert(keyblock->pkt->pkttype==PKT_PUBLIC_KEY);
@@ -1682,10 +1683,8 @@ clean_uids_from_key(KBNODE keyblock,int noisy)
{
if(node->pkt->pkttype==PKT_USER_ID)
{
- PKT_user_id *uid=node->pkt->pkt.user_id;
-
+ uid=node->pkt->pkt.user_id;
sigdate=0;
- signode=NULL;
/* Skip valid user IDs, and non-self-signed user IDs if
--allow-non-selfsigned-uid is set. */
@@ -1718,7 +1717,7 @@ clean_uids_from_key(KBNODE keyblock,int noisy)
}
}
}
- else if(node->pkt->pkttype==PKT_SIGNATURE)
+ else if(node->pkt->pkttype==PKT_SIGNATURE && uid)
{
PKT_signature *sig=node->pkt->pkt.signature;
@@ -1727,13 +1726,11 @@ clean_uids_from_key(KBNODE keyblock,int noisy)
if(IS_UID_SIG(sig) && sig->timestamp>sigdate
&& keyid[0]==sig->keyid[0] && keyid[1]==sig->keyid[1]
&& check_key_signature(keyblock,node,NULL)==0)
- {
- sigdate=sig->timestamp;
- signode=node;
- }
+ sigdate=sig->timestamp;
if(delete_until_next && !sig->flags.chosen_selfsig)
{
+ uid->flags.compacted=1;
delete_kbnode(node);
if(deleting)
{