diff --git a/g10/ChangeLog b/g10/ChangeLog index f27f87306..cf15e422b 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,12 @@ +2003-03-11 David Shaw + + * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv" + keyserver option. Defaults to on. + + * passphrase.c (agent_get_passphrase): Fix memory leak with + symmetric messages. Fix segfault with symmetric messages. Fix + incorrect prompt with symmetric messages. + 2003-03-10 Werner Koch * compress.c (init_uncompress): Use a 15 bit window size so that diff --git a/g10/g10.c b/g10/g10.c index 82663219b..0226243ad 100644 --- a/g10/g10.c +++ b/g10/g10.c @@ -1166,6 +1166,7 @@ main( int argc, char **argv ) EXPORT_INCLUDE_NON_RFC|EXPORT_INCLUDE_ATTRIBUTES; opt.keyserver_options.include_subkeys=1; opt.keyserver_options.include_revoked=1; + opt.keyserver_options.try_dns_srv=1; opt.trust_model=TM_OPENPGP; opt.mangle_dos_filenames = 1; diff --git a/g10/keyserver.c b/g10/keyserver.c index 4947293d8..eb8169246 100644 --- a/g10/keyserver.c +++ b/g10/keyserver.c @@ -67,6 +67,7 @@ struct kopts {"broken-http-proxy",1,&opt.keyserver_options.broken_http_proxy}, {"refresh-add-fake-v3-keyids",0,&opt.keyserver_options.fake_v3_keyids}, {"auto-key-retrieve",0,&opt.keyserver_options.auto_key_retrieve}, + {"try-dns-srv",1,&opt.keyserver_options.try_dns_srv}, {NULL} }; diff --git a/g10/options.h b/g10/options.h index f3a408eb4..12a1e2f73 100644 --- a/g10/options.h +++ b/g10/options.h @@ -129,6 +129,7 @@ struct { int keep_temp_files; int fake_v3_keyids; int auto_key_retrieve; + int try_dns_srv; unsigned int import_options; unsigned int export_options; STRLIST other; diff --git a/g10/passphrase.c b/g10/passphrase.c index ac3f0311e..5345fb9b7 100644 --- a/g10/passphrase.c +++ b/g10/passphrase.c @@ -614,9 +614,12 @@ agent_get_passphrase ( u32 *keyid, int mode, const char *tryagain_text ) memset (fpr, 0, MAX_FINGERPRINT_LEN ); if( keyid && get_pubkey( pk, keyid ) ) - pk = NULL; /* oops: no key for some reason */ + { + free_public_key( pk ); + pk = NULL; /* oops: no key for some reason */ + } - if ( !mode && pk ) + if ( !mode && pk && keyid ) { char *uid; size_t uidlen; @@ -658,10 +661,10 @@ agent_get_passphrase ( u32 *keyid, int mode, const char *tryagain_text ) } } - else if (mode == 1 ) - atext = m_strdup ( _("Enter passphrase\n") ); - else + else if (mode == 2 ) atext = m_strdup ( _("Repeat passphrase\n") ); + else + atext = m_strdup ( _("Enter passphrase\n") ); if ( (fd = agent_open (&prot)) == -1 ) goto failure;