Hi!

On Wed, Sep 01, 1999 at 12:49:27PM +0200, Mark Weinem wrote:
> I'm running GnuPG 0.9.10-2. Gpg is the default in ~/.muttrc, and gpgm
> is a symbolic link to gpg. But sending my public key  or encrypting
> still doesn't work. Mutt always asks for  a key ID but every input
> seems to be wrong.

(Marcus Pallinger earlier reported the same bug)

Indeed it was a bug in mutt. Please apply the attached patch by
changing in the source directory,
"patch -p0 < patch-1.0pre2.gt.strtok.1", and then recompile mutt
by doing "make".


Gero
--- gnupgparse.c.orig   Tue Sep  7 10:59:35 1999
+++ gnupgparse.c        Tue Sep  7 10:46:17 1999
@@ -149,14 +149,16 @@
 #endif
 
 
-  keylist = safe_strdup(uids);
-  for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+  if ((keylist = safe_strdup(uids)) != NULL)
   {
-    snprintf(tmpcmd, sizeof(tmpcmd), "%s %s",
-            cmd, cp);
-    strcpy(cmd, tmpcmd);
+    for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+    {
+      snprintf(tmpcmd, sizeof(tmpcmd), "%s %s",
+              cmd, cp);
+      strcpy(cmd, tmpcmd);
+    }
+    safe_free((void **) &keylist);
   }
-  safe_free((void **) &keylist);
   return mutt_create_filter_fd(cmd, pgpin, pgpout, pgperr,
                               pgpinfd, pgpoutfd, pgperrfd);
 }
--- pgpinvoke.c.orig    Tue Sep  7 11:29:34 1999
+++ pgpinvoke.c Tue Sep  7 11:18:56 1999
@@ -291,15 +291,16 @@
   
   FREE(&pubring); FREE(&secring); FREE(&binary); FREE(&_fname);
   
-  keylist = safe_strdup(uids);
-  
-  for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+  if ((keylist = safe_strdup(uids)) != NULL)
   {
-    snprintf(tmpcmd, sizeof(tmpcmd), "%s -r %s", 
-            cmd, cp);
-    strcpy(cmd, tmpcmd);
+    for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+    {
+      snprintf(tmpcmd, sizeof(tmpcmd), "%s -r %s", 
+              cmd, cp);
+      strcpy(cmd, tmpcmd);
+    }
+    safe_free((void **) &keylist);
   }
-  safe_free((void **) &keylist);
   
   return mutt_create_filter_fd(cmd, pgpin, pgpout, pgperr, 
                               pgpinfd, pgpoutfd, pgperrfd);
@@ -613,14 +614,16 @@
           PgpSignAs? "-u " : "",
           PgpSignAs? PgpSignAs : "" );
   
-  keylist = safe_strdup(uids);
-  for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+  if ((keylist = safe_strdup(uids)) != NULL)
   {
-    snprintf(tmpcmd, sizeof(tmpcmd), "%s -r %s",
-            cmd, cp);
-    strcpy(cmd, tmpcmd);
+    for(cp = strtok(keylist, " "); cp ; cp = strtok(NULL, " "))
+    {
+      snprintf(tmpcmd, sizeof(tmpcmd), "%s -r %s",
+              cmd, cp);
+      strcpy(cmd, tmpcmd);
+    }
+    safe_free((void **) &keylist);
   }
-  safe_free((void **) &keylist);
 
   snprintf(tmpcmd, sizeof(tmpcmd), "%s %s", cmd, _fname);
   strcpy(cmd, tmpcmd);

Reply via email to