Fixes from Sebastian Pipping/gentoo.

--- unixos.c.orig	Mon Jul 21 21:54:05 2003
+++ unixos.c	Tue Dec 11 10:52:04 2012
@@ -30,6 +30,7 @@
 #include <sys/param.h>
 #include <netdb.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include "xmalloc.h"
 #include "common.h"
 #include "part.h"
@@ -38,10 +39,6 @@
 #define MAXHOSTNAMELEN 64
 #endif
 
-extern int errno;
-extern char *malloc();
-extern char *getenv();
-
 int overwrite_files = 0;
 int didchat;
 
@@ -90,7 +87,7 @@ char *os_idtodir(char *id)
 	strcpy(buf, getenv("TMPDIR"));
     }
     else {
-	strcpy(buf, "/usr/tmp");
+	strcpy(buf, "/var/tmp");
     }
     strcat(buf, "/m-prts-");
     p = getenv("USER");
@@ -136,11 +133,7 @@ FILE *os_createnewfile(char *fname)
     int fd;
     FILE *ret;
      
-#ifdef O_EXCL
-    fd=open(fname, O_RDWR|O_CREAT|O_EXCL, 0644);
-#else
-    fd=open(fname, O_RDWR|O_CREAT|O_TRUNC, 0644);
-#endif
+    fd=open(fname, O_RDWR|O_CREAT|O_EXCL, 0600);
 
     if (fd == -1)
         return NULL;
@@ -149,7 +142,19 @@ FILE *os_createnewfile(char *fname)
     return ret;
 }
 
-     
+FILE *os_resetfile(char *fname)
+{
+    int fd;
+    FILE *ret;
+
+    fd=open(fname, O_RDWR|O_CREAT|O_TRUNC, 0600);
+    if (fd == -1)
+        return NULL;
+
+    ret=fdopen(fd, "w");
+    return ret;
+}
+
 /*
  * Create a new file, with suggested filename "fname".
  * "fname" may have come from an insecure source, so clean it up first.
