|
cvsdist |
bbbfe0f |
--- dos2unix-3.1/dos2unix.c.segf Thu Jan 17 17:27:42 2002
|
|
cvsdist |
bbbfe0f |
+++ dos2unix-3.1/dos2unix.c Thu Jan 17 17:28:07 2002
|
|
cvsdist |
bbbfe0f |
@@ -147,9 +147,9 @@
|
|
cvsdist |
bbbfe0f |
* RetVal: NULL if failure
|
|
cvsdist |
bbbfe0f |
* file stream otherwise
|
|
cvsdist |
bbbfe0f |
*/
|
|
cvsdist |
bbbfe0f |
-FILE* OpenOutFile(char *ipFN)
|
|
cvsdist |
bbbfe0f |
+FILE* OpenOutFile(int fd)
|
|
cvsdist |
bbbfe0f |
{
|
|
cvsdist |
bbbfe0f |
- return (fopen(ipFN, W_CNTRL));
|
|
cvsdist |
bbbfe0f |
+ return (fdopen(fd, W_CNTRL));
|
|
cvsdist |
bbbfe0f |
}
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
@@ -260,14 +260,17 @@
|
|
cvsdist |
bbbfe0f |
char TempPath[16];
|
|
cvsdist |
bbbfe0f |
struct stat StatBuf;
|
|
cvsdist |
bbbfe0f |
struct utimbuf UTimeBuf;
|
|
cvsdist |
bbbfe0f |
+ int fd;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
/* retrieve ipInFN file date stamp */
|
|
cvsdist |
bbbfe0f |
if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
- strcpy (TempPath, "./d2utmp");
|
|
cvsdist |
bbbfe0f |
- strcat (TempPath, "XXXXXX");
|
|
cvsdist |
bbbfe0f |
- mkstemp (TempPath);
|
|
cvsdist |
bbbfe0f |
+ strcpy (TempPath, "./d2utmpXXXXXX");
|
|
cvsdist |
bbbfe0f |
+ if((fd=mkstemp (TempPath))<0) {
|
|
cvsdist |
bbbfe0f |
+ perror("Failed to open output temp file");
|
|
cvsdist |
bbbfe0f |
+ RetVal = -1;
|
|
cvsdist |
bbbfe0f |
+ }
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
#ifdef DEBUG
|
|
cvsdist |
bbbfe0f |
fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
|
|
cvsdist |
bbbfe0f |
@@ -278,7 +281,7 @@
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
/* can open out file? */
|
|
cvsdist |
bbbfe0f |
- if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
|
|
cvsdist |
bbbfe0f |
+ if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
|
|
cvsdist |
bbbfe0f |
{
|
|
cvsdist |
bbbfe0f |
fclose (InF);
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
@@ -295,6 +298,8 @@
|
|
cvsdist |
bbbfe0f |
/* can close out file? */
|
|
cvsdist |
bbbfe0f |
if ((TempF) && (fclose(TempF) == EOF))
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
+ if(fd>=0)
|
|
cvsdist |
bbbfe0f |
+ close(fd);
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
if ((!RetVal) && (ipFlag->KeepDate))
|
|
cvsdist |
bbbfe0f |
{
|
|
cvsdist |
bbbfe0f |
@@ -340,14 +345,17 @@
|
|
cvsdist |
bbbfe0f |
char TempPath[16];
|
|
cvsdist |
bbbfe0f |
struct stat StatBuf;
|
|
cvsdist |
bbbfe0f |
struct utimbuf UTimeBuf;
|
|
cvsdist |
bbbfe0f |
+ int fd;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
/* retrieve ipInFN file date stamp */
|
|
cvsdist |
bbbfe0f |
if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
- strcpy (TempPath, "./u2dtmp");
|
|
cvsdist |
bbbfe0f |
- strcat (TempPath, "XXXXXX");
|
|
cvsdist |
bbbfe0f |
- mkstemp (TempPath);
|
|
cvsdist |
bbbfe0f |
+ strcpy (TempPath, "./u2dtmpXXXXXX");
|
|
cvsdist |
bbbfe0f |
+ if((fd=mkstemp (TempPath))<0) {
|
|
cvsdist |
bbbfe0f |
+ perror("Failed to open output temp file");
|
|
cvsdist |
bbbfe0f |
+ RetVal = -1;
|
|
cvsdist |
bbbfe0f |
+ }
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
#ifdef DEBUG
|
|
cvsdist |
bbbfe0f |
fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
|
|
cvsdist |
bbbfe0f |
@@ -358,7 +366,7 @@
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
/* can open out file? */
|
|
cvsdist |
bbbfe0f |
- if ((!RetVal) && (InF) && ((TempF=OpenOutFile(TempPath)) == NULL))
|
|
cvsdist |
bbbfe0f |
+ if ((!RetVal) && (InF) && ((TempF=OpenOutFile(fd)) == NULL))
|
|
cvsdist |
bbbfe0f |
{
|
|
cvsdist |
bbbfe0f |
fclose (InF);
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
@@ -376,6 +384,9 @@
|
|
cvsdist |
bbbfe0f |
if ((TempF) && (fclose(TempF) == EOF))
|
|
cvsdist |
bbbfe0f |
RetVal = -1;
|
|
cvsdist |
bbbfe0f |
|
|
cvsdist |
bbbfe0f |
+ if(fd>=0)
|
|
cvsdist |
bbbfe0f |
+ close(fd);
|
|
cvsdist |
bbbfe0f |
+
|
|
cvsdist |
bbbfe0f |
if ((!RetVal) && (ipFlag->KeepDate))
|
|
cvsdist |
bbbfe0f |
{
|
|
cvsdist |
bbbfe0f |
UTimeBuf.actime = StatBuf.st_atime;
|