#endif
#include "mutt.h"
+#include "ascii.h"
+#include "handler.h"
#include "mutt_curses.h"
#include "mime.h"
#include "copy.h"
return -1;
}
- fseek (s->fpin, a->hdr_offset, 0);
+ fseeko (s->fpin, a->hdr_offset, 0);
bytes = a->length + a->offset - a->hdr_offset;
hadcr = 0;
while (bytes > 0) {
crypt_fetch_signatures (signatures, a->parts, n);
else {
if ((*n % 5) == 0)
- safe_realloc (signatures, (*n + 6) * sizeof (BODY **));
+ mem_realloc (signatures, (*n + 6) * sizeof (BODY **));
(*signatures)[(*n)++] = a;
}
* This routine verifies a "multipart/signed" body.
*/
-void mutt_signed_handler (BODY * a, STATE * s)
+int mutt_signed_handler (BODY * a, STATE * s)
{
char tempfile[_POSIX_PATH_MAX];
char *protocol;
int sigcnt = 0;
int i;
short goodsig = 1;
+ int rc = 0;
if (!WithCrypto)
- return;
+ return (-1);
protocol = mutt_get_parameter ("protocol", a->parameter);
a = a->parts;
state_attach_puts (_("[-- Error: "
"Inconsistent multipart/signed structure! --]\n\n"),
s);
- mutt_body_handler (a, s);
- return;
+ return mutt_body_handler (a, s);
}
state_printf (s, _("[-- Error: "
"Unknown multipart/signed protocol %s! --]\n\n"),
protocol);
- mutt_body_handler (a, s);
- return;
+ return mutt_body_handler (a, s);
}
if (s->flags & M_DISPLAY) {
state_attach_puts (_("[-- The following data is signed --]\n\n"), s);
- FREE (&signatures);
+ mem_free (&signatures);
}
else
state_attach_puts (_("[-- Warning: Can't find any signatures. --]\n\n"),
s);
}
- mutt_body_handler (a, s);
+ rc = mutt_body_handler (a, s);
if (s->flags & M_DISPLAY && sigcnt)
state_attach_puts (_("\n[-- End of signed data --]\n"), s);
+
+ return (rc);
}