From 64f24da2834ea4732758c87f2ac3adabd493e113 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 24 Jun 2009 14:01:20 +0000 Subject: [PATCH] Fix a couple of minor bugs. --- g10/ChangeLog | 5 +++++ g10/passphrase.c | 2 +- g10/revoke.c | 2 -- keyserver/ChangeLog | 5 +++++ keyserver/gpgkeys_ldap.c | 11 +++++++---- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/g10/ChangeLog b/g10/ChangeLog index c1b0085ed..3e3d6dbe7 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2009-06-24 Werner Koch + + * passphrase.c (passphrase_to_dek): Do not deref a PW of NULL. + * revoke.c (gen_revoke): Remove unused malloc of PK. + 2009-06-17 Werner Koch * parse-packet.c (parse): Use a casted -1 instead of a 32 bit diff --git a/g10/passphrase.c b/g10/passphrase.c index de4ca6cf1..c93cde64d 100644 --- a/g10/passphrase.c +++ b/g10/passphrase.c @@ -1003,7 +1003,7 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo, get_last_passphrase(). */ dek = xmalloc_secure_clear ( sizeof *dek ); dek->algo = cipher_algo; - if( !*pw && mode == 2 ) + if( (!pw || !*pw) && mode == 2 ) dek->keylen = 0; else hash_passphrase( dek, pw, s2k, mode==2 ); diff --git a/g10/revoke.c b/g10/revoke.c index 32b269f29..bff6d002c 100644 --- a/g10/revoke.c +++ b/g10/revoke.c @@ -488,8 +488,6 @@ gen_revoke( const char *uname ) keyid_from_sk( sk, sk_keyid ); print_seckey_info (sk); - pk = xmalloc_clear( sizeof *pk ); - /* FIXME: We should get the public key direct from the secret one */ pub_keyblock=get_pubkeyblock(sk_keyid); diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index b1622c3ce..186e74f21 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,3 +1,8 @@ +2009-06-24 Werner Koch + + * gpgkeys_ldap.c (send_key): Do not loop over a NULL modlist in + fail. Reported by Fabian Keil. + 2009-06-09 David Shaw * Makefile.am (gpgkeys_hkp_LDADD): Need DNSLIBS for the resolver diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index 17b585f84..4430ccbe1 100644 --- a/keyserver/gpgkeys_ldap.c +++ b/keyserver/gpgkeys_ldap.c @@ -777,13 +777,16 @@ send_key(int *eof) fail: /* Unwind and free the whole modlist structure */ - for(ml=modlist;*ml;ml++) + if (modlist) { - free_mod_values(*ml); - free(*ml); + for(ml=modlist;*ml;ml++) + { + free_mod_values(*ml); + free(*ml); + } + free(modlist); } - free(modlist); free(addlist); free(dn); free(key);