tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: more fexecve questions
In article <20190910150418.BECAB6051C%jupiter.mumble.net@localhost>,
Taylor R Campbell <campbell+netbsd-tech-kern%mumble.net@localhost> wrote:
>> Date: Tue, 10 Sep 2019 10:52:47 -0400
>> From: christos%zoulas.com@localhost (Christos Zoulas)
>>
>> 1. Looks like FreeBSD (and my initial posting) leaves the file descriptor
>> of the executable open in the process's image. The Linux man page says
>> to set close-on-exec if you don't want it to be passed to the child
>> process. Which behavior do you prefer? To have fexecve close the fd
>> automatically or to leave it up to the caller? It seems less magical
>> to leave it to the caller, but it also requires action from the caller.
>
>I don't see why fexec should behave differently from exec in the
>decision of which fds stay open. We already have a mechanism to
>request any other fd be closed on exec.
Fine,
>> 2. I am setting the path of the executable to "/" and p_comm to "*fexecve*".
>> I could also do a reverse lookup and set them to the path of the binary,
>> I found and default to "/" and "*fexecve*" if that's not found. I know
>> people don't like those reverse lookups because of the vnode cache
>> issues...
>
>Can we just cache these when the file descriptor is opened with
>O_EXEC?
>
>The cache could become stale if the executable or any parent directory
>is moved or deleted. But they could become stale after exec too for
>the same reason.
I guess we could, since the problem is that if the filename is greater than
NCHNAMLEN, they will not be cached. But I am not familiar enough with the
cache to make the changes required.
Finally I should fix the code so that it works for scripts. It currently
does not.
christos
Home |
Main Index |
Thread Index |
Old Index