[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] [PATCH] Make evutil_read_file() close-on-exec safe.



On Sat, Feb 11, 2012 at 3:15 PM, Ross Lagerwall <rosslagerwall@xxxxxxxxx> wrote:
> If we can't trust the compile-time value and we can't detect the runtime
> behavior then I think the solution I suggested is a reasonable idea.

Agreed.

(Actually, we _could_ detect it at runtime by using fcntl(F_GETFD) on
an fd after we opened it with O_CLOEXEC.  But that would throw away
the syscall that we just saved.)

>> Additionally, I see 3 other open()s: two in arc4random.c and one in
>> devpoll.c.  Maybe this means we want an evutil_* wrapper function to
>> set CLOEXEC on fds.
>>
>> thoughts?
>
> Attached is a patch which provides a new utility function,
> evutil_open_closeonexec which is used instead in place of the various
> open() calls.

Looks good.  I'm merging it onto patches-2.0, with a couple of tweaks:

  * Windows doesn't have mode_t so far as I can tell, so I'm using
"unsigned" instead.
  * I'm not passing the third argument to open unless the O_CREAT flag
was provided; I seem to recall that using the three-argument form
without O_CREAT can confuse some  unixes.

cheers,
-- 
Nick
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.