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);