Hello, As a reminder, here is the issue:
“ $ cat bar #!/bin/sh echo "\$0: $0" $ cat foo.c ... char *arg[] = { argv[1], NULL }; execv (*arg, arg); perror ("execv"); ... $ ./foo ./bar $0: ./bar $ ./foo bar $0: /dev/fd/3 Having /dev/fd/N in $0 instead of the real file name is what is breaking libtool logic to find .libs and execute the correct binary, breaking GLib's test suite. ” as well as other issues met here and there in Debian packages. Roland McGrath, le Tue 01 Jun 2010 16:22:57 -0700, a écrit : > I am not convinced that this is worth doing. Well, it has already been done, why not integrating it? Not having it upstream is giving us downstream pain. > Any name from anywhere is always just a guess at what might be the > right file name. Err, not really here: the idea is to make glibc pass the filename it has used to open the file. This is not a guess any more, this just reflects reality. > It is only a guess for convenience when not secure, after all. But with this RPC extension, this is not a guess any more in cases where it can not be one. > There will always be cases where you can't manage to guess it. > With fexecve, there isn't even any > such file name to pass as a better guess than something derived from argv[0]. Sure, but in that case users will not even try to get a name from argv[0], while in the ./foo bar case, I believe they are rightful in thinking they can get a name from argv[0]. Samuel