From 420745afd47f7291f5f3f28d0ff68d58245d1105 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 6 May 2007 09:18:39 +0000 Subject: 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 --- libc/misc/internals/tempname.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'libc') 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; -- cgit v1.2.3