* getkey.c (premerge_public_with_secret): Made "no secret subkey for"
authorDavid Shaw <dshaw@jabberwocky.com>
Mon, 26 May 2003 13:21:12 +0000 (13:21 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Mon, 26 May 2003 13:21:12 +0000 (13:21 +0000)
warning a verbose item and translatable. (From wk on stable branch)

* sig-check.c (check_key_signature2): Made "no subkey for subkey binding
packet" a verbose item instead of a !quiet one.  There are too many
garbled keys out in the wild. (From wk on stable branch)

* filter.h: Remove const from WHAT. (From wk on stable branch)

* progress.c (handle_progress): Store a copy of NAME. (progress_filter):
Release WHAT, make sure not to print a NULL WHAT. (From wk on stable
branch)

* openfile.c (open_sigfile): Adjust free for new progress semantics. (From
wk on stable branch)

* plaintext.c (ask_for_detached_datafile): Don't dealloc pfx->WHAT. (From
wk on stable branch)

* seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the cipher
algo is IDEA to make it easier to track down the problem. (From twoaday on
stable branch)

g10/ChangeLog
g10/filter.h
g10/getkey.c
g10/openfile.c
g10/plaintext.c
g10/progress.c
g10/seckey-cert.c
g10/sig-check.c

index 77f09b6..7f0ec95 100644 (file)
@@ -1,3 +1,29 @@
+2003-05-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (premerge_public_with_secret): Made "no secret subkey
+       for" warning a verbose item and translatable. (From wk on stable
+       branch)
+
+       * sig-check.c (check_key_signature2): Made "no subkey for subkey
+       binding packet" a verbose item instead of a !quiet one.  There are
+       too many garbled keys out in the wild. (From wk on stable branch)
+
+       * filter.h: Remove const from WHAT. (From wk on stable branch)
+
+       * progress.c (handle_progress): Store a copy of
+       NAME. (progress_filter): Release WHAT, make sure not to print a
+       NULL WHAT. (From wk on stable branch)
+
+       * openfile.c (open_sigfile): Adjust free for new progress
+       semantics. (From wk on stable branch)
+
+       * plaintext.c (ask_for_detached_datafile): Don't dealloc
+       pfx->WHAT. (From wk on stable branch)
+
+       * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
+       cipher algo is IDEA to make it easier to track down the
+       problem. (From twoaday on stable branch)
+       
 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
 
        * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
index d420d7c..9f235fd 100644 (file)
@@ -110,7 +110,7 @@ typedef struct {
 
 
 typedef struct {
-    const char *what;          /* description */
+    char *what;                        /* description */
     u32 last_time;             /* last time reported */
     unsigned long last;                /* last amount reported */
     unsigned long offset;      /* current amount */
index 789e298..122d17f 100644 (file)
@@ -2068,8 +2068,9 @@ premerge_public_with_secret ( KBNODE pubblock, KBNODE secblock )
             if ( !sec ) {
                 KBNODE next, ll;
 
-                log_info ( "no secret subkey "
-                           "for public subkey %08lX - ignoring\n",  
+                if (opt.verbose)
+                  log_info ( _("no secret subkey "
+                               "for public subkey %08lX - ignoring\n"),  
                            (ulong)keyid_from_pk (pk,NULL) );
                 /* we have to remove the subkey in this case */
                 assert ( last );
index 8545896..6f4541e 100644 (file)
@@ -282,8 +282,7 @@ open_sigfile( const char *iname, progress_filter_context_t *pfx )
                log_info(_("assuming signed data in `%s'\n"), buf );
            if (a && pfx)
              handle_progress (pfx, a, buf);
-           else
-             m_free(buf);
+            m_free(buf);
        }
     }
     return a;
index 3183785..8904302 100644 (file)
@@ -358,14 +358,11 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
                           const char *inname, int textmode )
 {
     progress_filter_context_t pfx;
-    int dealloc_pfx_name = 1;
     char *answer = NULL;
     IOBUF fp;
     int rc = 0;
 
     fp = open_sigfile( inname, &pfx ); /* open default file */
-    if (!fp)
-      dealloc_pfx_name = 0;
 
     if( !fp && !opt.batch ) {
        int any=0;
@@ -400,8 +397,6 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
     }
     do_hash( md, md2, fp, textmode );
     iobuf_close(fp);
-    if (dealloc_pfx_name)
-      m_free ((void *)pfx.what);
 
   leave:
     m_free(answer);
@@ -428,7 +423,6 @@ hash_datafiles( MD_HANDLE md, MD_HANDLE md2, STRLIST files,
        if( fp ) {
            do_hash( md, md2, fp, textmode );
            iobuf_close(fp);
-           m_free ((void *)pfx.what);
            return 0;
        }
         log_error (_("no signed data\n"));
index 36b293a..bb414fa 100644 (file)
@@ -45,7 +45,9 @@ progress_filter (void *opaque, int control,
       pfx->offset = 0;
       pfx->last_time = make_timestamp ();
 
-      sprintf (buffer, "%.20s ? %lu %lu", pfx->what, pfx->offset,
+      sprintf (buffer, "%.20s ? %lu %lu",
+               pfx->what? pfx->what : "?",
+               pfx->offset,
               pfx->total);
       write_status_text (STATUS_PROGRESS, buffer);
     }
@@ -69,7 +71,9 @@ progress_filter (void *opaque, int control,
        {
          char buffer[50];
          
-         sprintf (buffer, "%.20s ? %lu %lu", pfx->what, pfx->offset,
+         sprintf (buffer, "%.20s ? %lu %lu",
+                   pfx->what? pfx->what : "?", 
+                   pfx->offset,
                   pfx->total);
          write_status_text (STATUS_PROGRESS, buffer);
 
@@ -77,6 +81,14 @@ progress_filter (void *opaque, int control,
          pfx->last_time = timestamp;
        }
     }
+  else if (control == IOBUFCTRL_FREE)
+    {
+      /* Note, that we must always dealloc resources of a filter
+         within the filter handler and not anywhere else.  (We set it
+         to NULL and check all uses just in case.) */
+      m_free (pfx->what);
+      pfx->what = NULL;
+    }
   else if (control == IOBUFCTRL_DESC)
     *(char**)buf = "progress_filter";
   return rc;
@@ -99,7 +111,7 @@ handle_progress (progress_filter_context_t *pfx, IOBUF inp, const char *name)
     filesize = opt.set_filesize;
 
   /* register the progress filter */
-  pfx->what = name ? name : "stdin";
+  pfx->what = m_strdup (name ? name : "stdin");
   pfx->total = filesize;
   iobuf_push_filter (inp, progress_filter, pfx);
 }
index 32c5449..76f0ee2 100644 (file)
@@ -59,8 +59,11 @@ do_check( PKT_secret_key *sk, const char *tryagain_text, int mode,
        if( check_cipher_algo( sk->protect.algo ) ) {
            log_info(_("protection algorithm %d%s is not supported\n"),
                        sk->protect.algo,sk->protect.algo==1?" (IDEA)":"" );
-           if(sk->protect.algo==CIPHER_ALGO_IDEA)
-             idea_cipher_warn(0);
+           if (sk->protect.algo==CIPHER_ALGO_IDEA)
+              {
+                write_status (STATUS_RSA_OR_IDEA);
+                idea_cipher_warn (0);
+              }
            return G10ERR_CIPHER_ALGO;
        }
        keyid_from_sk( sk, keyid );
index 47ee6a2..107cac5 100644 (file)
@@ -574,9 +574,9 @@ check_key_signature2( KBNODE root, KBNODE node, PKT_public_key *check_pk,
            md_close(md);
        }
        else {
-            if (!opt.quiet)
-                log_info ("key %08lX: no subkey for subkey "
-                         "binding signature\n",(ulong)keyid_from_pk(pk,NULL));
+            if (opt.verbose)
+                log_info ("key %08lX: no subkey for subkey binding packet\n",
+                          (ulong)keyid_from_pk (pk, NULL));
            rc = G10ERR_SIG_CLASS;
        }
     }