You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.3 KiB
92 lines
2.3 KiB
Patch to defeat uudeview "UNKNOWN" filenames. |
|
Problem introduced with 0.5.19 |
|
Problem remains in 0.5.20 |
|
|
|
Index: uuscan.c |
|
--- uulib/uuscan.c.orig 2004-03-12 11:47:13.000000000 +0100 |
|
+++ uulib/uuscan.c 2004-03-12 13:37:54.000000000 +0100 |
|
@@ -1604,20 +1604,23 @@ |
|
} |
|
|
|
/* skip empty lines */ |
|
- prevpos = ftell (datei); |
|
+ { |
|
+ long localprevpos; |
|
+ localprevpos = ftell (datei); |
|
if (IsLineEmpty (line)) { |
|
while (!feof (datei)) { |
|
if (_FP_fgets (line, 255, datei) == NULL) |
|
break; |
|
if (UUBUSYPOLL(ftell(datei),progress.fsize)) SPCANCEL(); |
|
if (!IsLineEmpty (line)) { |
|
- fseek (datei, prevpos, SEEK_SET); |
|
+ fseek (datei, localprevpos, SEEK_SET); |
|
line[255] = '\0'; |
|
break; |
|
} |
|
- prevpos = ftell (datei); |
|
+ localprevpos = ftell (datei); |
|
} |
|
} |
|
+ } |
|
|
|
/* |
|
* If we don't have all valid MIME headers yet, but the following |
|
|
|
mkstemp security enhancement. Similar to |
|
FreeBSD http://www.freebsd.org/cgi/query-pr.cgi?pr=41508 |
|
SuSE uudeview-0.5.18-244.src.rpm |
|
|
|
--- unix/uudeview.c |
|
+++ unix/uudeview.c |
|
@@ -434,7 +434,7 @@ |
|
return 0; |
|
} |
|
|
|
- if ((stdfile = tempnam (NULL, "uu")) == NULL) { |
|
+ if ((stdfile = _FP_tempnam (NULL, "uu")) == NULL) { |
|
fprintf (stderr, "proc_stdin: cannot get temporary file\n"); |
|
return 0; |
|
} |
|
|
|
--- uulib/fptools.c |
|
+++ uulib/fptools.c |
|
@@ -507,5 +507,15 @@ |
|
char * TOOLEXPORT |
|
_FP_tempnam (char *dir, char *pfx) |
|
{ |
|
- return _FP_strdup (tmpnam (NULL)); |
|
+ int fd; |
|
+ char fileName[100]; |
|
+ |
|
+ strncpy(fileName, pfx, 90); |
|
+ strcat(fileName, "XXXXXX"); |
|
+ fd = mkstemp(fileName); |
|
+ if (fd == -1) |
|
+ return NULL; |
|
+ close(fd); |
|
+ unlink(fileName); |
|
+ return _FP_strdup (fileName); |
|
} |
|
|
|
--- uulib/uunconc.c |
|
+++ uulib/uunconc.c |
|
@@ -1264,7 +1264,7 @@ |
|
else |
|
mode = "wb"; /* otherwise in binary */ |
|
|
|
- if ((data->binfile = tempnam (NULL, "uu")) == NULL) { |
|
+ if ((data->binfile = _FP_tempnam (NULL, "uu")) == NULL) { |
|
UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, |
|
uustring (S_NO_TEMP_NAME)); |
|
return UURET_NOMEM; |
|
@@ -1426,7 +1426,7 @@ |
|
*/ |
|
|
|
if (data->uudet == BH_ENCODED && data->binfile) { |
|
- if ((ntmp = tempnam (NULL, "uu")) == NULL) { |
|
+ if ((ntmp = _FP_tempnam (NULL, "uu")) == NULL) { |
|
UUMessage (uunconc_id, __LINE__, UUMSG_ERROR, |
|
uustring (S_NO_TEMP_NAME)); |
|
progress.action = 0; |
|
|
|
|