{
char tfile[_POSIX_PATH_MAX];
char warning[STRING + _POSIX_PATH_MAX];
+ int tempfd;
if (afilter) {
snprintf (warning, sizeof (warning),
CLEARLINE (LINES - 1);
return;
}
- mutt_mktemp (tfile);
- } else {
- tfile[0] = '\0';
+ tempfd = m_tempfd(tfile, sizeof(tfile), NONULL(Tempdir), NULL);
}
- if (mutt_pipe_attachment (fp, body, command, tfile)) {
+ if (mutt_pipe_attachment (fp, body, command, tempfd)) {
if (afilter) {
mutt_unlink (body->filename);
mutt_rename_file (tfile, body->filename);
mutt_update_encoding (body);
mutt_message _("Attachment filtered.");
}
- } else {
- if (afilter && tfile[0])
+ } else if (afilter) {
+ close(tempfd);
mutt_unlink (tfile);
}
}