*** libmsg/connect.c.orig	Sat May 16 22:55:34 1998
--- libmsg/connect.c	Sat May 16 23:00:59 1998
***************
*** 106,116 ****
  
  	/* bind it to a unix-domain at a temporary address */
  	addr.sun_family = AF_UNIX;
! 	tmpnam(addr.sun_path);
  	path = strdup(addr.sun_path);
  	len = strlen(addr.sun_path);
  
  	if (bind(s, (struct sockaddr *) &addr, sizeof addr) < 0){
  		perror("bind");
  		return -1;
  	}
--- 106,118 ----
  
  	/* bind it to a unix-domain at a temporary address */
  	addr.sun_family = AF_UNIX;
! 	sprintf(addr.sun_path, "%s/xx.XXXXXXXX", P_tmpdir);
! 	close(mkstemp(addr.sun_path));
  	path = strdup(addr.sun_path);
  	len = strlen(addr.sun_path);
  
  	if (bind(s, (struct sockaddr *) &addr, sizeof addr) < 0){
+ 		unlink(path);
  		perror("bind");
  		return -1;
  	}
***************
*** 119,128 ****
--- 121,134 ----
  
  	fd = wilyfifotalk();		/* fifo to wily */
  	if(fd<0)
+ 	{
+ 		unlink(path);
  		return -1;
+ 	}
  	nwritten = write(fd, addr.sun_path, len);
  	close(fd);
  	if(nwritten !=len){
+ 		unlink(path);
  		perror("write to wily");
  		return -1;
  	}
