Fix bug#1138.
authorWerner Koch <wk@gnupg.org>
Mon, 28 Sep 2009 17:11:32 +0000 (17:11 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 28 Sep 2009 17:11:32 +0000 (17:11 +0000)
g10/ChangeLog
g10/photoid.c
g10/trustdb.c

index e239d9e..88227e3 100644 (file)
@@ -1,3 +1,9 @@
+2009-09-28  Werner Koch  <wk@g10code.com>
+
+       * trustdb.c (get_validity_info): Take care of a NULL PK.  Fixes
+       bug#1138.
+       (get_validity_string): Ditto.
+
 2009-09-02  Werner Koch  <wk@g10code.com>
 
        * app-openpgp.c (do_decipher): Compute required Le.
        TIMESTAMP.
        (write_direct_sig, write_selfsigs, write_keybinding)
        (make_backsig): Ditto.
-       (do_generate_keypair): Pass timestamp to all signing functions. 
+       (do_generate_keypair): Pass timestamp to all signing functions.
        (generate_card_subkeypair): Ditto.
        * keyedit.c (menu_backsign): Pass a new timestamp to all backsisg.
 
index 38003d8..727a9ff 100644 (file)
@@ -194,7 +194,8 @@ generate_photo_id(PKT_public_key *pk,const char *photo_name)
 }
 
 /* Returns 0 for error, 1 for valid */
-int parse_image_header(const struct user_attribute *attr,byte *type,u32 *len)
+int 
+parse_image_header(const struct user_attribute *attr,byte *type,u32 *len)
 {
   u16 headerlen;
 
@@ -229,7 +230,8 @@ int parse_image_header(const struct user_attribute *attr,byte *type,u32 *len)
    make sure it is not too big (see parse-packet.c:parse_attribute).
    Extensions should be 3 characters long for the best cross-platform
    compatibility. */
-char *image_type_to_string(byte type,int style)
+char *
+image_type_to_string(byte type,int style)
 {
   char *string;
 
index d435ce6..6fa082b 100644 (file)
@@ -1182,6 +1182,9 @@ get_validity_info (PKT_public_key *pk, PKT_user_id *uid)
 {
     int trustlevel;
 
+    if (!pk)
+      return '?';  /* Just in case a NULL PK is passed.  */
+
     trustlevel = get_validity (pk, uid);
     if( trustlevel & TRUST_FLAG_REVOKED )
        return 'r';
@@ -1193,6 +1196,9 @@ get_validity_string (PKT_public_key *pk, PKT_user_id *uid)
 {
   int trustlevel;
 
+  if (!pk)
+    return "err";  /* Just in case a NULL PK is passed.  */
+
   trustlevel = get_validity (pk, uid);
   if( trustlevel & TRUST_FLAG_REVOKED )
     return _("revoked");