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

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;