/[mailutils]/mailutils/guimb/util.c
ViewVC logotype

Diff of /mailutils/guimb/util.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by gray, Thu Jul 19 14:53:02 2001 UTC revision 1.2 by gray, Thu Jan 17 22:32:42 2002 UTC
# Line 29  util_error (char *fmt, ...) Line 29  util_error (char *fmt, ...)
29    va_end (ap);    va_end (ap);
30  }  }
31    
 int  
 util_tempfile (char **namep)  
 {  
   char *filename;  
   char *tmpdir;  
   int fd;  
   
   /* We have to be extra careful about opening temporary files, since we  
      may be running with extra privilege i.e setgid().  */  
   tmpdir = (getenv ("TMPDIR")) ? getenv ("TMPDIR") : "/tmp";  
   
   filename = malloc (strlen (tmpdir) + /*'/' */ 1 + /* "muXXXXXX" */ 8 + 1);  
   if (!filename)  
     return -1;  
   sprintf (filename, "%s/muXXXXXX", tmpdir);  
   
 #ifdef HAVE_MKSTEMP  
   {  
     int save_mask = umask (077);  
     fd = mkstemp (filename);  
     umask (save_mask);  
   }  
 #else  
   if (mktemp (filename))  
     fd = open (filename, O_CREAT | O_EXCL | O_RDWR, 0600);  
   else  
     fd = -1;  
 #endif  
   
   if (fd == -1)  
     {  
       util_error ("Can not open temporary file: %s", strerror (errno));  
       free (filename);  
       return -1;  
     }  
   
   if (namep)  
     *namep = filename;  
   else  
     {  
       unlink (filename);  
       free (filename);  
     }  
   
   return fd;  
 }  
   
32  char *  char *
33  util_get_sender (int msgno)  util_get_sender (int msgno)
34  {  {

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26