--- /dev/null
+--- dos2unix-3.1/dos2unix.c.segf Thu Jan 17 17:27:42 2002
++++ dos2unix-3.1/dos2unix.c Thu Jan 17 17:28:07 2002
+@@ -147,9 +147,9 @@
+ * RetVal: NULL if failure
+ * file stream otherwise
+ */
+-FILE* OpenOutFile(char *ipFN)
++FILE* OpenOutFile(int fd)
+ {
+- return (fopen(ipFN, W_CNTRL));
++ return (fdopen(fd, W_CNTRL));
+ }
+
+
+@@ -260,14 +260,17 @@
+ char TempPath[16];
+ struct stat StatBuf;
+ struct utimbuf UTimeBuf;
++ int fd;
+
+ /* retrieve ipInFN file date stamp */
+ if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
+ RetVal = -1;
+
+- strcpy (TempPath, "./d2utmp");
+- strcat (TempPath, "XXXXXX");
+- mkstemp (TempPath);
++ strcpy (TempPath, "./d2utmpXXXXXX");
++ if((fd=mkstemp (TempPath))<0) {
++ perror("Failed to open output temp file");
++ RetVal = -1;
++ }
+
+ #ifdef DEBUG
+ fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
+@@ -278,7 +281,7 @@
+ RetVal = -1;
+
+ /* can open out file? */
+- if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
++ if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
+ {
+ fclose (InF);
+ RetVal = -1;
+@@ -295,6 +298,8 @@
+ /* can close out file? */
+ if ((TempF) && (fclose(TempF) == EOF))
+ RetVal = -1;
++ if(fd>=0)
++ close(fd);
+
+ if ((!RetVal) && (ipFlag->KeepDate))
+ {
+@@ -340,14 +345,17 @@
+ char TempPath[16];
+ struct stat StatBuf;
+ struct utimbuf UTimeBuf;
++ int fd;
+
+ /* retrieve ipInFN file date stamp */
+ if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
+ RetVal = -1;
+
+- strcpy (TempPath, "./u2dtmp");
+- strcat (TempPath, "XXXXXX");
+- mkstemp (TempPath);
++ strcpy (TempPath, "./u2dtmpXXXXXX");
++ if((fd=mkstemp (TempPath))<0) {
++ perror("Failed to open output temp file");
++ RetVal = -1;
++ }
+
+ #ifdef DEBUG
+ fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
+@@ -358,7 +366,7 @@
+ RetVal = -1;
+
+ /* can open out file? */
+- if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
++ if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
+ {
+ fclose (InF);
+ RetVal = -1;
+@@ -376,6 +384,9 @@
+ if ((TempF) && (fclose(TempF) == EOF))
+ RetVal = -1;
+
++ if(fd>=0)
++ close(fd);
++
+ if ((!RetVal) && (ipFlag->KeepDate))
+ {
+ UTimeBuf.actime = StatBuf.st_atime;
--- /dev/null
+--- dos2unix-3.1/Makefile.orig Thu Nov 19 07:09:38 1998
++++ dos2unix-3.1/Makefile Fri Nov 17 13:25:35 2000
+@@ -1,10 +1,12 @@
++CFLAGS=
++
+ default: dos2unix
+
+ all: dos2unix link install
+
+
+ dos2unix:
+- gcc -O dos2unix.c -o dos2unix
++ gcc $(CFLAGS) dos2unix.c -o dos2unix
+
+
+ link:
+@@ -12,11 +14,10 @@
+ ln -s dos2unix.1 mac2unix.1
+
+ clean:
+- rm dos2unix
++ rm -f dos2unix mac2unix mac2unix.1 *~ *.orig core
+
+ install:
+ install -m 755 dos2unix /usr/local/bin
+ install -m 644 dos2unix.1 /usr/local/man/man1
+ install -m 755 mac2unix /usr/local/bin
+ install -m 644 mac2unix.1 /usr/local/man/man1
+-
+--- dos2unix-3.1/dos2unix.c.orig Thu Nov 19 07:19:25 1998
++++ dos2unix-3.1/dos2unix.c Fri Nov 17 13:25:25 2000
+@@ -267,7 +267,7 @@
+
+ strcpy (TempPath, "./d2utmp");
+ strcat (TempPath, "XXXXXX");
+- mktemp (TempPath);
++ mkstemp (TempPath);
+
+ #ifdef DEBUG
+ fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
+@@ -347,7 +347,7 @@
+
+ strcpy (TempPath, "./u2dtmp");
+ strcat (TempPath, "XXXXXX");
+- mktemp (TempPath);
++ mkstemp (TempPath);
+
+ #ifdef DEBUG
+ fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);