Follow-up Comment #12, bug #28934 (project hurd):
The patch looks good, but I have a couple of suggestions.
In __execve you cannot just call _hurd_exec_file_name unconditionally
since all exec() variants end up as a __execve(). For instance,
if there is both `/bin/foo' and `./foo', execpv("foo", { "foo", 0 })
will expand to execve("/bin/foo", { "foo", 0 }, ...), which expands to
_hurd_exec_file_name(file, { "foo", 0 }, ...), which will make the exec
server think you meant `./foo'. Instead, you should actually test with
strcmp whether FILE_NAME and ARGV[0] are one and the same.
Also I think you should have a flags argument to _hurd_exec_generic
instead of a boolean, pass along the EXEC_FILE_NAME flag, and
perhaps rename the function to _hurd_exec_flags. You could even drop
_hurd_exec_file_name all together then, though you would have to move out
the #ifdef EXEC_FILE_NAME to the callers, so perhaps its worth keeping...
Regards,
Fredrik
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?28934>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/