Take care of already existing bogus 0x1f signatures.
[gnupg.git] / g10 / trustdb.c
index 902089c..c83e169 100644 (file)
@@ -408,6 +408,27 @@ setup_trustdb( int level, const char *dbname )
 }
 
 void
+how_to_fix_the_trustdb ()
+{
+  const char *name = trustdb_args.dbname;
+
+  if (!name)
+    name = "trustdb.gpg";
+
+  log_info (_("You may try to re-create the trustdb using the commands:\n"));
+  log_info ("  cd %s\n", default_homedir ());
+  log_info ("  gpg2 --export-ownertrust > otrust.tmp\n");
+#ifdef HAVE_W32_SYSTEM
+  log_info ("  del %s\n", name);
+#else
+  log_info ("  rm %s\n", name);
+#endif
+  log_info ("  gpg2 --import-ownertrust < otrust.tmp\n");
+  log_info (_("If that does not work, please consult the manual\n"));
+}
+
+
+void
 init_trustdb()
 {
   int level = trustdb_args.level;
@@ -1155,12 +1176,15 @@ get_validity (PKT_public_key *pk, PKT_user_id *uid)
 int
 get_validity_info (PKT_public_key *pk, PKT_user_id *uid)
 {
-    int trustlevel;
-
-    trustlevel = get_validity (pk, uid);
-    if( trustlevel & TRUST_FLAG_REVOKED )
-       return 'r';
-    return trust_letter ( trustlevel );
+  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';
+  return trust_letter (trustlevel);
 }
 
 const char *
@@ -1168,6 +1192,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");
@@ -1634,7 +1661,7 @@ clean_sigs_from_uid(KBNODE keyblock,KBNODE uidnode,int noisy,int self_only)
       /* Everything else we delete */
 
       /* At this point, if 12 is set, the signing key was unavailable.
-        If 9 or 10 is set, it's superceded.  Otherwise, it's
+        If 9 or 10 is set, it's superseded.  Otherwise, it's
         invalid. */
 
       if(noisy)
@@ -1642,7 +1669,7 @@ clean_sigs_from_uid(KBNODE keyblock,KBNODE uidnode,int noisy,int self_only)
                 keystr(node->pkt->pkt.signature->keyid),
                 uidnode->pkt->pkt.user_id->name,
                 node->flag&(1<<12)?"key unavailable":
-                node->flag&(1<<9)?"signature superceded":"invalid signature");
+                node->flag&(1<<9)?"signature superseded":"invalid signature");
 
       delete_kbnode(node);
       deleted++;