$OpenBSD: patch-src_lhadd_c,v 1.1 2002/02/04 22:16:17 naddy Exp $
--- src/lhadd.c.orig	Wed Oct  4 16:57:38 2000
+++ src/lhadd.c	Mon Feb  4 17:52:03 2002
@@ -270,13 +270,35 @@ build_temporary_file()
 {
 	int             old_umask;
 	FILE           *afp;
+	int		tempfd;
+
+  #ifdef TMP_FILENAME_TEMPLATE
+	  if (extract_directory == NULL) {
+		  strcpy(temporary_name, TMP_FILENAME_TEMPLATE);
+	  }
+	  else {
+		  sprintf(temporary_name, "%s/lhXXXXXX", extract_directory);
+	  }
+	  tempfd = mkstemp(temporary_name);
+  #else
+	  char		 *p, *s;
+
+	  strcpy(temporary_name, archive_name);
+	  for (p = temporary_name, s = (char *) 0; *p; p++)
+		  if (*p == '/')
+			  s = p;
+	  strcpy((s ? s + 1 : temporary_name), "lhXXXXXX");
+	  tempfd = mkstemp(temporary_name);
+  #endif
+	if (tempfd == -1)
+	  return NULL;
 
-	build_temporary_name();
 	signal(SIGINT, interrupt);
 	signal(SIGHUP, interrupt);
 
 	old_umask = umask(077);
-	afp = xfopen(temporary_name, WRITE_BINARY);
+	/*afp = xfopen(temporary_name, WRITE_BINARY);*/
+	afp = fdopen(tempfd, "w+");
 	remove_temporary_at_error = TRUE;
 	temporary_fp = afp;
 	umask(old_umask);
