X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Ftemp%2Fmkdtemp.c;h=f2ecc5102ed996a92bf2da6bfdaf1bcf9899fc47;hp=f8b067ec27955b173f928473804fbaf50e5a567f;hb=446b4207cc7a30d8a4d5b2445a5a1b27d440f55d;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01 diff --git a/src/temp/mkdtemp.c b/src/temp/mkdtemp.c index f8b067ec..f2ecc510 100644 --- a/src/temp/mkdtemp.c +++ b/src/temp/mkdtemp.c @@ -8,14 +8,18 @@ #include #include "libc.h" +char *__mktemp(char *); + char *mkdtemp(char *template) { - for (;;) { - if (!mktemp(template)) return 0; + int retries = 100; + 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 */ strcpy(template+strlen(template)-6, "XXXXXX"); } + return 0; }