*** xip/xippkt.c-orig	Mon Jun 21 13:37:43 1999
--- xip/xippkt.c	Mon Jun 21 13:51:12 1999
***************
*** 962,967 ****
--- 962,979 ----
  #define TMP_TEMPLATE		"/tmp/xipXXXXXX"
  
    strcpy(fnamebuf,TMP_TEMPLATE);
+ 
+ #ifdef HAVE_MKDTEMP
+ #define TMP_FILENAME		"XXXXXXXXXX"
+   
+   /* Wrap the unsafe mktemp() below. */
+   if ((fname = mkdtemp(fnamebuf)) == NULL)
+     return (-ERR_XIP_SUBROUTINE);
+ 
+   strcat(fnamebuf, "/");
+   strcat(fnamebuf, TMP_FILENAME);
+ #endif
+   
    if ((fname = mktemp(fnamebuf)) == NULL)
      return (-ERR_XIP_SUBROUTINE);
    if ((status = pkt_save_raw(xmd->xp->pkt,
***************
*** 1023,1028 ****
--- 1035,1043 ----
    status = 0;
  end:
    unlink(fname);
+ #ifdef HAVE_MKDTEMP
+   rmdir(dirname(fname));
+ #endif
    return (status);
  }
  
