X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Ftmpfile.c;h=2fa8803fc2312c64465d83819f4e15f452909a75;hb=0e5234807dcdc76c43f9313c6ba9e2b7da408d8c;hp=a7d0000aecaeec7b9bae5e4fe235286706b22bf4;hpb=dd5f50da6f6c3df5647e922e47f8568a8896a752;p=musl diff --git a/src/stdio/tmpfile.c b/src/stdio/tmpfile.c index a7d0000a..2fa8803f 100644 --- a/src/stdio/tmpfile.c +++ b/src/stdio/tmpfile.c @@ -1,11 +1,10 @@ #include #include +#include #include "stdio_impl.h" #define MAXTRIES 100 -char *__randname(char *); - FILE *tmpfile(void) { char s[] = "/tmp/tmpfile_XXXXXX"; @@ -16,16 +15,15 @@ FILE *tmpfile(void) __randname(s+13); fd = sys_open(s, O_RDWR|O_CREAT|O_EXCL, 0600); if (fd >= 0) { - f = __fdopen(fd, "w+"); #ifdef SYS_unlink __syscall(SYS_unlink, s); #else __syscall(SYS_unlinkat, AT_FDCWD, s, 0); #endif + f = __fdopen(fd, "w+"); + if (!f) __syscall(SYS_close, fd); return f; } } return 0; } - -LFS64(tmpfile);