projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rocco Rutte:
[apps/madmutt.git]
/
pgp.c
diff --git
a/pgp.c
b/pgp.c
index
74f73a9
..
4b586e9
100644
(file)
--- a/
pgp.c
+++ b/
pgp.c
@@
-104,16
+104,13
@@
void pgp_forget_passphrase (void)
}
int pgp_use_gpg_agent (void) {
}
int pgp_use_gpg_agent (void) {
- char *tty
, *ttybuf
;
+ char *tty;
if (!option (OPTUSEGPGAGENT) || !getenv ("GPG_AGENT_INFO"))
return 0;
if (!option (OPTUSEGPGAGENT) || !getenv ("GPG_AGENT_INFO"))
return 0;
- if ((tty = ttyname(0)) &&
- ((ttybuf = mem_malloc (sizeof("GPG_TTY") + strlen(tty) + 1)))) {
- snprintf (ttybuf, sizeof (ttybuf), "GPG_TTY=%s", tty);
- putenv (ttybuf);
- }
+ if ((tty = ttyname(0)))
+ setenv ("GPG_TTY", tty, 0);
return 1;
}
return 1;
}
@@
-240,7
+237,8
@@
int pgp_application_pgp_handler (BODY * m, STATE * s)
int c = 1;
int clearsign = 0, rv, rc;
long start_pos = 0;
int c = 1;
int clearsign = 0, rv, rc;
long start_pos = 0;
- long bytes, last_pos, offset;
+ long bytes;
+ LOFF_T last_pos, offset;
char buf[HUGE_STRING];
char outfile[_POSIX_PATH_MAX];
char tmpfname[_POSIX_PATH_MAX];
char buf[HUGE_STRING];
char outfile[_POSIX_PATH_MAX];
char tmpfname[_POSIX_PATH_MAX];
@@
-257,14
+255,14
@@
int pgp_application_pgp_handler (BODY * m, STATE * s)
rc = 0; /* silence false compiler warning if (s->flags & M_DISPLAY) */
rc = 0; /* silence false compiler warning if (s->flags & M_DISPLAY) */
- fseek (s->fpin, m->offset, 0);
+ fseek
o
(s->fpin, m->offset, 0);
last_pos = m->offset;
for (bytes = m->length; bytes > 0;) {
if (fgets (buf, sizeof (buf), s->fpin) == NULL)
break;
last_pos = m->offset;
for (bytes = m->length; bytes > 0;) {
if (fgets (buf, sizeof (buf), s->fpin) == NULL)
break;
- offset = ftell (s->fpin);
+ offset = ftell
o
(s->fpin);
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
@@
-302,7
+300,7
@@
int pgp_application_pgp_handler (BODY * m, STATE * s)
fputs (buf, tmpfp);
while (bytes > 0 && fgets (buf, sizeof (buf) - 1, s->fpin) != NULL) {
fputs (buf, tmpfp);
while (bytes > 0 && fgets (buf, sizeof (buf) - 1, s->fpin) != NULL) {
- offset = ftell (s->fpin);
+ offset = ftell
o
(s->fpin);
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
bytes -= (offset - last_pos); /* don't rely on str_len(buf) */
last_pos = offset;
@@
-378,6
+376,7
@@
int pgp_application_pgp_handler (BODY * m, STATE * s)
}
/* treat empty result as sign of failure */
}
/* treat empty result as sign of failure */
+ /* TODO: maybe on failure mutt should include the original undecoded text. */
if (pgpout) {
rewind (pgpout);
c = fgetc (pgpout);
if (pgpout) {
rewind (pgpout);
c = fgetc (pgpout);
@@
-387,8
+386,10
@@
int pgp_application_pgp_handler (BODY * m, STATE * s)
mutt_error _("Could not decrypt PGP message");
mutt_sleep (1);
pgp_void_passphrase ();
mutt_error _("Could not decrypt PGP message");
mutt_sleep (1);
pgp_void_passphrase ();
- rc = -1;
- goto out;
+ if (!(s->flags & M_DISPLAY)) {
+ rc = -1;
+ goto out;
+ }
}
}
}
}
@@
-564,7
+565,7
@@
int pgp_verify_one (BODY * sigbdy, STATE * s, const char *tempfile)
return -1;
}
return -1;
}
- fseek (s->fpin, sigbdy->offset, 0);
+ fseek
o
(s->fpin, sigbdy->offset, 0);
mutt_copy_bytes (s->fpin, fp, sigbdy->length);
fclose (fp);
mutt_copy_bytes (s->fpin, fp, sigbdy->length);
fclose (fp);
@@
-746,7
+747,7
@@
BODY *pgp_decrypt_part (BODY * a, STATE * s, FILE * fpout, BODY * p)
* the temporary file.
*/
* the temporary file.
*/
- fseek (s->fpin, a->offset, 0);
+ fseek
o
(s->fpin, a->offset, 0);
mutt_copy_bytes (s->fpin, pgptmp, a->length);
fclose (pgptmp);
mutt_copy_bytes (s->fpin, pgptmp, a->length);
fclose (pgptmp);