aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyedit.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r--g10/keyedit.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 771f4d6d2..c96aeb4ab 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -2872,7 +2872,9 @@ menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock )
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
&& ( (mainkey && uid
&& uid->created && (sig->sig_class&~3) == 0x10)
- || (!mainkey && sig->sig_class == 0x18) ) ) {
+ || (!mainkey && sig->sig_class == 0x18) )
+ && sig->flags.chosen_selfsig )
+ {
/* this is a selfsignature which is to be replaced */
PKT_signature *newsig;
PACKET *newpkt;
@@ -3012,8 +3014,10 @@ menu_set_primary_uid ( KBNODE pub_keyblock, KBNODE sec_keyblock )
else if ( main_pk && uid && node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
if ( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
- && (uid && (sig->sig_class&~3) == 0x10)
- && attribute == (uid->attrib_data!=NULL)) {
+ && (uid && (sig->sig_class&~3) == 0x10)
+ && attribute == (uid->attrib_data!=NULL)
+ && sig->flags.chosen_selfsig )
+ {
if(sig->version < 4) {
char *user=utf8_to_native(uid->name,strlen(uid->name),0);
@@ -3122,7 +3126,8 @@ menu_set_preferences (KBNODE pub_keyblock, KBNODE sec_keyblock )
&& node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
if ( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
- && (uid && (sig->sig_class&~3) == 0x10) ) {
+ && (uid && (sig->sig_class&~3) == 0x10)
+ && sig->flags.chosen_selfsig ) {
if( sig->version < 4 ) {
char *user=utf8_to_native(uid->name,strlen(uid->name),0);