From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/11406 Path: news.gmane.org!.POSTED!not-for-mail From: Markus Wichmann Newsgroups: gmane.linux.lib.musl.general Subject: Re: tmpfile patch Date: Fri, 9 Jun 2017 06:19:43 +0200 Message-ID: <20170609041943.wmwajmjtme43yapu@voyager> References: <1c4f252e-9c13-9d52-f966-a186216a8396@gmail.com> <20170608201555.GR9350@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="chruvqrgijlndv2z" X-Trace: blaine.gmane.org 1496982014 28821 195.159.176.226 (9 Jun 2017 04:20:14 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 9 Jun 2017 04:20:14 +0000 (UTC) User-Agent: NeoMutt/20170113 (1.7.2) To: musl@lists.openwall.com Original-X-From: musl-return-11419-gllmg-musl=m.gmane.org@lists.openwall.com Fri Jun 09 06:20:11 2017 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1dJBP8-0007Ik-Di for gllmg-musl@m.gmane.org; Fri, 09 Jun 2017 06:20:10 +0200 Original-Received: (qmail 4060 invoked by uid 550); 9 Jun 2017 04:20:13 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 4042 invoked from network); 9 Jun 2017 04:20:13 -0000 Content-Disposition: inline In-Reply-To: <20170608201555.GR9350@port70.net> X-Provags-ID: V03:K0:8aBvXO5dLlaSdVS2QpWBmI1wgflfKQGY+EWwRFsO6Fs/2+PTmWO 0fXrtp86O95SYbqLp5AMikkEOLaqSZjIoPl+hpbIAGgK4r7nKJxm0I6F2n1Tl2mYYAV0CNY Cr0iMccsKaNHdrsU6a21dRGl4qK6gkYPoGqf9aK4yZRfhp2ghytk8PoK+wFi6t6bKQaDsEk fsHsPq7AYUrvyO1ivHumA== X-UI-Out-Filterresults: notjunk:1;V01:K0:ymT765vvvKE=:s1KrAw66zyf0BrjJ7jmgnV cVIvBv16qvGxNZwZMJFQHaoOGkufdszWlFIQKTb50PFcPqom9j+NT83YQevGSThZeNSVdhUnB DgCpShJ0AJwTNApwBJc4gvfH3VisGwdXe0NGnYNk3HAKmYO17O2QPfa17751ZuWOf4WeAiIVu 8cUi2N4yAJ99X9JSKFXICoAP71PiCpmqhDWN2/3R+K4b3X3gsuNwmM4ne46k+hye8LFKKq33D RaFuvVmXLgODeyiOtejEdmIkRvxmdxFpVrP7k6rSu4K51bB6JFAouaKy43auQwBO+AzLc5aNt EOFP3wkDjCCpbMGyhQEpVkKo/Z+39hQJYmKox8BEVrGVOcsUO0qR6EpiZGqAGQzKsCTwga90r LSWkulLZmeDyQ3rbNp7hdWea0nlSVDDNEsfoCXqVMQsjb8SqWH7q6+jOQgshmRNEgRgjlcM2o xoB5eeJJDwCqBqNeXRZELxlEs3ddDqmkCZNLDv9tn+cD1jY5H7ah4jl8DKDSfoiKa140f4PM9 TfhGuxE+ULNl991ia69Slmv/0USrmEudUZdg2UQNzhX0hD6BHD+x7D1ZrOLnETdzSjlqX5LE2 XPIfZYVeZQkv0VZuqTYGTpOzPn6OFIDTVK83kPPUua/6BNOvSvC+7DMRObVRFgeltNz/njilB eGG0xfYntlyiKw4bbupdbKrf9CeAeDEtHmOFVBA5G0y/fxqauSsMo+5CQJWyJcpOk8JOj6ilq eJCLWSlHT4+95ocKyPk85NRqvWE/4v6I12e1XAa2RDhGXjRQSvgZ3LvIvWw= Xref: news.gmane.org gmane.linux.lib.musl.general:11406 Archived-At: --chruvqrgijlndv2z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, I reformatted the OP's patch. Now it uses O_TMPFILE if available, and if that fails for any reason it falls back to the current code. Enjoy. Note: This is entirely untested. I don't see any obvious bugs, however. Ciao, Markus --chruvqrgijlndv2z Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="tmp.patch" diff --git a/src/stdio/tmpfile.c b/src/stdio/tmpfile.c index 525090aa..ccfd0128 100644 --- a/src/stdio/tmpfile.c +++ b/src/stdio/tmpfile.c @@ -8,25 +8,33 @@ char *__randname(char *); FILE *tmpfile(void) { - char s[] = "/tmp/tmpfile_XXXXXX"; int fd; - FILE *f; - int try; - for (try=0; try= 0) { + FILE *f = 0; +#ifdef O_TMPFILE + fd = sys_open("/tmp", O_RDWR|O_TMPFILE); + if (fd == -1) +#endif + { + char s[] = "/tmp/tmpfile_XXXXXX"; + int try; + fd = -1; + for (try=0; try= 0) { #ifdef SYS_unlink - __syscall(SYS_unlink, s); + __syscall(SYS_unlink, s); #else - __syscall(SYS_unlinkat, AT_FDCWD, s, 0); + __syscall(SYS_unlinkat, AT_FDCWD, s, 0); #endif - f = __fdopen(fd, "w+"); - if (!f) __syscall(SYS_close, fd); - return f; - } - } - return 0; + } + } + } + if (fd >= 0) { + f = __fdopen(fd, "w+"); + if (!f) __syscall(SYS_close, fd); + } + return f; } LFS64(tmpfile); --chruvqrgijlndv2z--