diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-05-06 09:18:39 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-05-06 09:18:39 +0000 |
commit | 420745afd47f7291f5f3f28d0ff68d58245d1105 (patch) | |
tree | 0123c072a857fdc814f0b24d8219d3b2a8ad3c76 | |
parent | 4655544cb6de06a4a83c09c4d79dfb54fbde8f00 (diff) |
Nickolai Zeldovich writes: if the temp name already exists, then the retry code does not create a new temp name as the code to do so is outside of the retry loop
-rw-r--r-- | libc/misc/internals/tempname.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libc/misc/internals/tempname.c b/libc/misc/internals/tempname.c index 26918dc16..dc125020b 100644 --- a/libc/misc/internals/tempname.c +++ b/libc/misc/internals/tempname.c @@ -206,18 +206,17 @@ int attribute_hidden __gen_tempname (char *tmpl, int kind) return -1; } - /* Get some random data. */ - if (fillrand(randomness, sizeof(randomness)) != sizeof(randomness)) { - /* if random device nodes failed us, lets use the braindamaged ver */ - brain_damaged_fillrand(randomness, sizeof(randomness)); - } - - for (i = 0; i < sizeof(randomness); ++i) - XXXXXX[i] = letters[(randomness[i]) % NUM_LETTERS]; - for (i = 0; i < TMP_MAX; ++i) { + int j; + /* Get some random data. */ + if (fillrand(randomness, sizeof(randomness)) != sizeof(randomness)) { + /* if random device nodes failed us, lets use the braindamaged ver */ + brain_damaged_fillrand(randomness, sizeof(randomness)); + } + for (j = 0; j < sizeof(randomness); ++j) + XXXXXX[j] = letters[randomness[j] % NUM_LETTERS]; - switch(kind) { + switch (kind) { case __GT_NOCREATE: { struct stat st; |