*** xpdf/Stream.cc.orig	Mon May 26 02:28:46 1997
--- xpdf/Stream.cc	Tue Dec  2 22:10:07 1997
***************
*** 489,494 ****
--- 489,496 ----
  
  void LZWStream::reset() {
    FILE *f;
+   int fdfd;
+   char *zzzz;
  
    str->reset();
    bufPtr = bufEnd = buf;
***************
*** 504,515 ****
    strcpy(zCmd, uncompressCmd);
    strcat(zCmd, " ");
    zName = zCmd + strlen(zCmd);
!   tmpnam(zName);
    strcat(zName, ".Z");
!   if (!(f = fopen(zName, "w"))) {
      error(getPos(), "Couldn't open temporary file '%s'", zName);
      return;
    }
    dumpFile(f);
    fclose(f);
  #ifdef NO_POPEN
--- 506,526 ----
    strcpy(zCmd, uncompressCmd);
    strcat(zCmd, " ");
    zName = zCmd + strlen(zCmd);
!   strcpy(zName, "/tmp/xpXXXXXX");
!   fdfd = mkstemp(zName);
!   zzzz = strdup(zName);
    strcat(zName, ".Z");
!   if (!(f = fdopen(fdfd, "w"))) {
      error(getPos(), "Couldn't open temporary file '%s'", zName);
+     free(zzzz);
      return;
    }
+   if (rename(zzzz, zName) == -1) {
+     error(getPos(), "Couldn't rename temporary file '%s'", zName);
+     free(zzzz);
+     return;
+   }
+   free(zzzz);
    dumpFile(f);
    fclose(f);
  #ifdef NO_POPEN
