diff -urN dos2unix-3.1.orig/dos2unix.c dos2unix-3.1/dos2unix.c
--- dos2unix-3.1.orig/dos2unix.c 2004-12-05 16:51:03.826551192 +0000
+++ dos2unix-3.1/dos2unix.c 2004-12-05 16:52:02.777589272 +0000
@@ -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");
- mktemp (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");
- mktemp (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;
diff -urN dos2unix-3.1.orig/Makefile dos2unix-3.1/Makefile
--- dos2unix-3.1.orig/Makefile 2004-12-05 16:51:03.825551344 +0000
+++ dos2unix-3.1/Makefile 2004-12-05 16:51:51.759264312 +0000
@@ -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
-