diff options
author | Werner Koch <[email protected]> | 2006-12-06 10:16:50 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2006-12-06 10:16:50 +0000 |
commit | 0173cd5a9810622e38b76123528e83024fb59a0c (patch) | |
tree | b8c52436a3d30842f2c59cfcf273a7934432321f /g10/keyedit.c | |
parent | * keyedit.c (menu_clean): Show "already minimized" rather than (diff) | |
download | gnupg-0173cd5a9810622e38b76123528e83024fb59a0c.tar.gz gnupg-0173cd5a9810622e38b76123528e83024fb59a0c.zip |
Fixes for CVE-2006-6235
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r-- | g10/keyedit.c | 24 |
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); |