Subject: Re: bug#28023: fix make-temp-file race on local host

From: Eli Zaretskii <[email-masked]>
Date: Wed, 09 Aug 2017 22:09:41 +0300

> Cc: [email-masked]
> From: Paul Eggert <[email-masked]>
> Date: Wed, 9 Aug 2017 11:47:36 -0700
> 
> On 08/09/2017 09:05 AM, Eli Zaretskii wrote:
> > We could resolve this problem by providing a way for the Windows build
> > to specify its own replacements for 'open', 'mkdir', and 'lstat'
> > (Emacs already have such replacements in w32.c), which tempname.c
> > calls, but that would require minor changes in Gnulib's tempname.c.
> 
> This sounds like a better way to go. What minor changes would be needed? 
> tempname.c already includes config.h, which includes ms-w32.h, which 
> redefines open, mkdir, and lstat, so I thought it would work as-is.

Perhaps you are right, and it will "just work".  I will have to try
(for now, I just looked at the sources and the changes, but didn't try
building).

> > This seems to say that we will sometimes use secure_getenv, but the
> > relevant code in tempname.c is conditioned on _LIBC, which AFAIU is
> > only true when building glibc, so why do we need that?  Or did I miss
> > something?
> No, good catch, Emacs never needs secure_getenv. I fixed Gnulib, 
> installed the attached patch to propagate that fix, and will adjust the 
> proposed make-temp-file patch accordingly.

Thanks.