X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Ftemp%2Fmkdtemp.c;h=76140c77591c781fe00d10b2075dff1a4098d169;hb=b10d0230c1837be34e4ece7d6b11d19f1b578b9f;hp=162d98b0e38b1cfd760e80c7736f97fce1e0c03d;hpb=5377715ce07269131f011e6f4e978fb5dbf0b294;p=musl diff --git a/src/temp/mkdtemp.c b/src/temp/mkdtemp.c index 162d98b0..76140c77 100644 --- a/src/temp/mkdtemp.c +++ b/src/temp/mkdtemp.c @@ -12,12 +12,15 @@ char *__mktemp(char *); char *mkdtemp(char *template) { - for (;;) { - if (!__mktemp(template)) return 0; + int retries = 100, t0 = *template; + while (retries--) { + if (!*__mktemp(template)) return 0; if (!mkdir(template, 0700)) return template; if (errno != EEXIST) return 0; /* this is safe because mktemp verified * that we have a valid template string */ + template[0] = t0; strcpy(template+strlen(template)-6, "XXXXXX"); } + return 0; }