[lkml]   [2009]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] open: introduce O_NOSTD
    Hash: SHA1

    According to Florian Weimer on 8/28/2009 6:52 AM:
    > * Eric Blake:
    >> Your version fails to clear the cloexec bit of the final fd if the
    >> original caller didn't request O_CLOEXEC.
    > Okay, but you can fix that in a race-free manner (but I thought that
    > this was implied by open_safer).

    The current semantics of gnulib's open_safer is that the result is
    guaranteed to be 3 or larger. It would require an audit of all gnulib
    clients of the open_safer method to see whether it also makes sense to
    change the semantics of open_safer to also guarantee that fds start life
    with the cloexec bit set. But maybe that is a change worth making in
    gnulib, with applications intending to give an fd to a child process being
    required to explicitly clear the cloexec bit.

    >> Also, your suggestion has a definite race in that you are calling
    >> open() multiple times rather than cloning an existing fd after the
    >> first open(), such that another process could alter which file is
    >> visited between your first and last open().
    > Sure, but this is an unobservable differen.ce

    It is absolutely observable - if the user passed O_CREAT|O_EXCL as part of
    their flags, then the second open() will inappropriately fail.

    - --
    Don't work too hard, make some time for fun as well!

    Eric Blake
    Version: GnuPG v1.4.9 (Cygwin)
    Comment: Public key at
    Comment: Using GnuPG with Mozilla -

    -----END PGP SIGNATURE-----

     \ /
      Last update: 2009-08-28 15:13    [W:0.021 / U:2.320 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site