* Bug #15213, #18635: The use of the insecure m_scratch() and
[mmh] / sbr / m_scratch.c
index 123a498..353da56 100644 (file)
@@ -3,11 +3,18 @@
  * m_scratch.c -- construct a scratch file
  *
  * $Id$
+ *
+ * This code is Copyright (c) 2002, by the authors of nmh.  See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information.
  */
 
 #include <h/mh.h>
 
-
+/***************************************************************************
+ * DO NOT USE THIS FUNCTION!  IT WILL BE REMOVED IN THE FUTURE.
+ * THIS FUNCTION IS INSECURE.  USE THE FUNCTIONS DEFINED IN m_mktemp.c.
+ ***************************************************************************/
 char *
 m_scratch (char *file, char *template)
 {
@@ -15,11 +22,21 @@ m_scratch (char *file, char *template)
     static char buffer[BUFSIZ], tmpfil[BUFSIZ];
 
     snprintf (tmpfil, sizeof(tmpfil), "%sXXXXXX", template);
+/*
+  Mkstemp work postponed until later -Doug
+#ifdef HAVE_MKSTEMP
+    mkstemp (tmpfil);
+#else
+*/
     mktemp (tmpfil);
+/*
+#endif
+*/
+    /* nasty - this really means: if there is no '/' in the path */
     if ((cp = r1bindex (file, '/')) == file)
        strncpy (buffer, tmpfil, sizeof(buffer));
     else
-       snprintf (buffer, sizeof(buffer), "%.*s%s", cp - file, file, tmpfil);
+       snprintf (buffer, sizeof(buffer), "%.*s%s", (int)(cp - file), file, tmpfil);
     unlink (buffer);
 
     return buffer;