Re: cvs commit: src/usr.bin/make job.c

From: Giorgos Keramidas (keramida_at_freebsd.org)
Date: 05/18/05

  • Next message: Alexander Leidinger: "Re: cvs commit: src/usr.bin/make job.c"
    Date: Wed, 18 May 2005 17:14:56 +0300
    To: Max Okumoto <okumoto@ucsd.edu>, Alexander Leidinger <netchild@freebsd.org>
    
    

    On 2005-05-18 01:41, Max Okumoto <okumoto@ucsd.edu> wrote:
    > Your idea of using mkdtemp() can be fixed by putting a loop
    > around the code. Each time around the loop would be expensive
    > but we wouldn't be doing that to often anyway.
    >
    > loop:
    > mkdtemp(template)
    > mkfifo(tempalte + "/fifo")
    > if error remove temp directory, restore template and loop.
    >
    > Or better yet, if someone could create an equiv function in libc
    > so I don't have to maintain it in make(1) :-) Do any other
    > programs need the ability to make a temp fifo?
    >
    > Personally, I don't think it is a risk, but I wanted other
    > peoples opinions, before I tried to fix a non-issue. :-)

    Does this really need to be of the form DIR/fifo ?

    I haven't looked at the code that uses the fifo at all, so I risk being
    extremely out of topic here, but why wouldn't a temporary fifo created
    with a name obtained from mkstemp() work too?

    A directory won't be needed if the fifo name is created by mkstemp() and
    then passed directly to mkfifo(2).

    Then there is still a (small?) possibility for a race, but a subsequent
    invocation of mkstemp() is almost guaranteed to work, unless mkstemp()
    is severely broken.

    _______________________________________________
    freebsd-security@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-security
    To unsubscribe, send any mail to "freebsd-security-unsubscribe@freebsd.org"


  • Next message: Alexander Leidinger: "Re: cvs commit: src/usr.bin/make job.c"

    Relevant Pages