diff options
Diffstat (limited to 'src/temp/mkostemps.c')
-rw-r--r-- | src/temp/mkostemps.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/temp/mkostemps.c b/src/temp/mkostemps.c index 8cc01e37..7f8492a1 100644 --- a/src/temp/mkostemps.c +++ b/src/temp/mkostemps.c @@ -16,12 +16,13 @@ int __mkostemps(char *template, int len, int flags) } int fd, retries = 100; - while (retries--) { + do { __randname(template+l-len-6); if ((fd = open(template, flags | O_RDWR | O_CREAT | O_EXCL, 0600))>=0) return fd; - if (errno != EEXIST) return -1; - } + } while (--retries && errno == EEXIST); + + memcpy(template+l-len-6, "XXXXXX", 6); return -1; } |