X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/4a78cbcd4fa986d9c1e7bd0a5a4bdb619faeb7cb..71458b3b2492943349f7693a46792756d5013c69:/uip/mhparse.c diff --git a/uip/mhparse.c b/uip/mhparse.c index 9489a8e4..5e35cbbf 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -28,6 +28,12 @@ extern int wcachesw; /* mhcachesbr.c */ int checksw = 0; /* check Content-MD5 field */ +/* + * Directory to place temp files. This must + * be set before these routines are called. + */ +char *tmp; + /* * These are for mhfixmsg to: * 1) Instruct parser not to detect invalid Content-Transfer-Encoding @@ -194,11 +200,11 @@ parse_mime (char *file) if ((is_stdin = !(strcmp (file, "-")))) { char *tfile = m_mktemp2(NULL, invo_name, NULL, &fp); if (tfile == NULL) { - advise("mhparse", "unable to create temporary file in %s", - get_temp_dir()); + advise("mhparse", "unable to create temporary file"); return NULL; } file = add (tfile, NULL); + chmod (file, 0600); while (fgets (buffer, sizeof(buffer), stdin)) fputs (buffer, fp); @@ -1646,12 +1652,7 @@ openBase64 (CT ct, char **file) } if (*file == NULL) { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); + ce->ce_file = add (m_mktemp(tmp, NULL, NULL), NULL); ce->ce_unlink = 1; } else { ce->ce_file = add (*file, NULL); @@ -1885,12 +1886,7 @@ openQuoted (CT ct, char **file) } if (*file == NULL) { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); + ce->ce_file = add (m_mktemp(tmp, NULL, NULL), NULL); ce->ce_unlink = 1; } else { ce->ce_file = add (*file, NULL); @@ -2114,12 +2110,7 @@ open7Bit (CT ct, char **file) } if (*file == NULL) { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); + ce->ce_file = add (m_mktemp(tmp, NULL, NULL), NULL); ce->ce_unlink = 1; } else { ce->ce_file = add (*file, NULL); @@ -2508,14 +2499,8 @@ openFTP (CT ct, char **file) ce->ce_file = add (*file, NULL); else if (caching) ce->ce_file = add (cachefile, NULL); - else { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); - } + else + ce->ce_file = add (m_mktemp(tmp, NULL, NULL), NULL); if ((ce->ce_fp = fopen (ce->ce_file, "w+")) == NULL) { content_error (ce->ce_file, ct, "unable to fopen for reading/writing"); @@ -2703,12 +2688,7 @@ openMail (CT ct, char **file) } if (*file == NULL) { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); + ce->ce_file = add (m_mktemp(tmp, NULL, NULL), NULL); ce->ce_unlink = 1; } else { ce->ce_file = add (*file, NULL); @@ -2801,14 +2781,8 @@ openURL (CT ct, char **file) ce->ce_file = add(*file, NULL); else if (caching) ce->ce_file = add(cachefile, NULL); - else { - char *tempfile; - if ((tempfile = m_mktemp2(NULL, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file in %s", - get_temp_dir()); - } - ce->ce_file = add (tempfile, NULL); - } + else + ce->ce_file = add(m_mktemp(tmp, NULL, NULL), NULL); if ((ce->ce_fp = fopen(ce->ce_file, "w+")) == NULL) { content_error(ce->ce_file, ct, "unable to fopen for read/writing");