aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyedit.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2006-12-06 10:16:50 +0000
committerWerner Koch <[email protected]>2006-12-06 10:16:50 +0000
commit0173cd5a9810622e38b76123528e83024fb59a0c (patch)
treeb8c52436a3d30842f2c59cfcf273a7934432321f /g10/keyedit.c
parent* keyedit.c (menu_clean): Show "already minimized" rather than (diff)
downloadgnupg-0173cd5a9810622e38b76123528e83024fb59a0c.tar.gz
gnupg-0173cd5a9810622e38b76123528e83024fb59a0c.zip
Fixes for CVE-2006-6235
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r--g10/keyedit.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 758ae9436..bb8e63af4 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -1187,11 +1187,17 @@ change_passphrase( KBNODE keyblock )
set_next_passphrase( NULL );
for(;;) {
+ int canceled;
+
s2k->mode = opt.s2k_mode;
s2k->hash_algo = S2K_DIGEST_ALGO;
dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo,
- s2k, 2, errtext, NULL);
- if( !dek ) {
+ s2k, 2, errtext, &canceled);
+ if (!dek && canceled) {
+ rc = GPG_ERR_CANCELED;
+ break;
+ }
+ else if( !dek ) {
errtext = N_("passphrase not correctly repeated; try again");
tty_printf ("%s.\n", _(errtext));
}
@@ -3235,25 +3241,25 @@ menu_clean(KBNODE keyblock,int self_only)
else
reason=_("invalid");
- tty_printf("User ID \"%s\" compacted: %s\n",user,reason);
+ tty_printf (_("User ID \"%s\" compacted: %s\n"), user, reason);
modified=1;
}
else if(sigs)
{
tty_printf(sigs==1?
- "User ID \"%s\": %d signature removed\n":
- "User ID \"%s\": %d signatures removed\n",
+ _("User ID \"%s\": %d signature removed\n") :
+ _("User ID \"%s\": %d signatures removed\n"),
user,sigs);
modified=1;
}
else
{
- tty_printf(self_only==1?
- "User ID \"%s\": already minimized\n":
- "User ID \"%s\": already clean\n",
- user);
+ tty_printf (self_only==1?
+ _("User ID \"%s\": already minimized\n") :
+ _("User ID \"%s\": already clean\n"),
+ user);
}
xfree(user);