patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
49 lines
1.3 KiB
Diff
49 lines
1.3 KiB
Diff
Index: sort.c
|
|
===================================================================
|
|
RCS file: /home/ncvs/src/gnu/usr.bin/sort/sort.c,v
|
|
retrieving revision 1.11
|
|
diff -u -r1.11 sort.c
|
|
--- sort.c 1998/03/06 19:00:26 1.11
|
|
+++ sort.c 2000/12/26 23:01:23
|
|
@@ -369,7 +369,7 @@
|
|
FILE *fp;
|
|
int fd;
|
|
|
|
- fd = open (file, O_EXCL | O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
|
+ fd = open (file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
|
|
if (fd < 0 || (fp = fdopen (fd, "w")) == NULL)
|
|
{
|
|
error (0, errno, "%s", file);
|
|
@@ -449,22 +449,24 @@
|
|
static char *
|
|
tempname (void)
|
|
{
|
|
- static unsigned int seq;
|
|
+ int fd;
|
|
int len = strlen (temp_file_prefix);
|
|
char *name = xmalloc (len + 1 + sizeof ("sort") - 1 + 5 + 5 + 1);
|
|
struct tempnode *node;
|
|
|
|
node = (struct tempnode *) xmalloc (sizeof (struct tempnode));
|
|
sprintf (name,
|
|
- "%s%ssort%5.5d%5.5d",
|
|
+ "%s%ssortXXXXXX",
|
|
temp_file_prefix,
|
|
- (len && temp_file_prefix[len - 1] != '/') ? "/" : "",
|
|
- (unsigned int) getpid () & 0xffff, seq);
|
|
+ (len && temp_file_prefix[len - 1] != '/') ? "/" : "");
|
|
|
|
- /* Make sure that SEQ's value fits in 5 digits. */
|
|
- ++seq;
|
|
- if (seq >= 100000)
|
|
- seq = 0;
|
|
+ if ((fd = mkstemp(name)) == -1)
|
|
+ {
|
|
+ error (0, errno, _("mkstemp error"));
|
|
+ cleanup ();
|
|
+ exit (2);
|
|
+ }
|
|
+ close(fd);
|
|
|
|
node->name = name;
|
|
node->next = temphead.next;
|