Fix a couple of minor bugs.
authorWerner Koch <wk@gnupg.org>
Wed, 24 Jun 2009 14:01:20 +0000 (14:01 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 24 Jun 2009 14:01:20 +0000 (14:01 +0000)
g10/ChangeLog
g10/passphrase.c
g10/revoke.c
keyserver/ChangeLog
keyserver/gpgkeys_ldap.c

index c1b0085..3e3d6db 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-24  Werner Koch  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
 
        * parse-packet.c (parse): Use a casted -1 instead of a 32 bit
index de4ca6c..c93cde6 100644 (file)
@@ -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 );
index 32b269f..bff6d00 100644 (file)
@@ -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);
index b1622c3..186e74f 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-24  Werner Koch  <wk@g10code.com>
+
+       * gpgkeys_ldap.c (send_key): Do not loop over a NULL modlist in
+       fail.  Reported by Fabian Keil.
+
 2009-06-09  David Shaw  <dshaw@jabberwocky.com>
 
        * Makefile.am (gpgkeys_hkp_LDADD): Need DNSLIBS for the resolver
index 17b585f..4430ccb 100644 (file)
@@ -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);