Replace insecure mktemp() function with the tmpfile() as per bug
http://bugzilla.remotesensing.org/show_bug.cgi?id=78
This commit is contained in:
parent
d1e479c9a4
commit
546e7e62b7
@ -1,4 +1,4 @@
|
|||||||
/* $Id: fax2ps.c,v 1.18 2004-11-29 16:20:30 dron Exp $" */
|
/* $Id: fax2ps.c,v 1.19 2005-03-03 12:48:31 dron Exp $" */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1991-1997 Sam Leffler
|
* Copyright (c) 1991-1997 Sam Leffler
|
||||||
@ -190,13 +190,17 @@ void
|
|||||||
printTIF(TIFF* tif, uint16 pageNumber)
|
printTIF(TIFF* tif, uint16 pageNumber)
|
||||||
{
|
{
|
||||||
uint32 w, h;
|
uint32 w, h;
|
||||||
uint16 unit;
|
uint16 unit, compression;
|
||||||
float xres, yres, scale = 1.0;
|
float xres, yres, scale = 1.0;
|
||||||
tstrip_t s, ns;
|
tstrip_t s, ns;
|
||||||
time_t creation_time;
|
time_t creation_time;
|
||||||
|
|
||||||
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h);
|
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h);
|
||||||
TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w);
|
TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w);
|
||||||
|
if (!TIFFGetField(tif, TIFFTAG_COMPRESSION, &compression)
|
||||||
|
|| compression < COMPRESSION_CCITTRLE
|
||||||
|
|| compression > COMPRESSION_CCITT_T6)
|
||||||
|
return;
|
||||||
if (!TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres) || !xres) {
|
if (!TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres) || !xres) {
|
||||||
TIFFWarning(TIFFFileName(tif),
|
TIFFWarning(TIFFFileName(tif),
|
||||||
"No x-resolution, assuming %g dpi", defxres);
|
"No x-resolution, assuming %g dpi", defxres);
|
||||||
@ -368,28 +372,22 @@ main(int argc, char** argv)
|
|||||||
} else {
|
} else {
|
||||||
int n;
|
int n;
|
||||||
FILE* fd;
|
FILE* fd;
|
||||||
char temp[1024], buf[16*1024];
|
char buf[16*1024];
|
||||||
|
|
||||||
strcpy(temp, "/tmp/fax2psXXXXXX");
|
fd = tmpfile();
|
||||||
(void) mktemp(temp);
|
|
||||||
fd = fopen(temp, "w");
|
|
||||||
if (fd == NULL) {
|
if (fd == NULL) {
|
||||||
fprintf(stderr, "Could not create temp file \"%s\"\n", temp);
|
fprintf(stderr, "Could not create temporary file, exiting.\n");
|
||||||
|
fclose(fd);
|
||||||
exit(-2);
|
exit(-2);
|
||||||
}
|
}
|
||||||
while ((n = read(fileno(stdin), buf, sizeof (buf))) > 0)
|
while ((n = read(fileno(stdin), buf, sizeof (buf))) > 0)
|
||||||
write(fileno(fd), buf, n);
|
write(fileno(fd), buf, n);
|
||||||
tif = TIFFOpen(temp, "r");
|
tif = TIFFFdOpen(fileno(fd), "temp", "r");
|
||||||
#ifndef VMS
|
|
||||||
unlink(temp);
|
|
||||||
#else
|
|
||||||
remove(temp);
|
|
||||||
#endif
|
|
||||||
if (tif) {
|
if (tif) {
|
||||||
fax2ps(tif, npages, pages, "<stdin>");
|
fax2ps(tif, npages, pages, "<stdin>");
|
||||||
TIFFClose(tif);
|
TIFFClose(tif);
|
||||||
} else
|
} else
|
||||||
fprintf(stderr, "%s: Can not open, or not a TIFF file.\n", temp);
|
fprintf(stderr, "Can not open, or not a TIFF file.\n");
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
}
|
}
|
||||||
printf("%%%%Trailer\n");
|
printf("%%%%Trailer\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user