tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] Fix system() behaviour when parameter is NULL



On Fri, Aug 22, 2008 at 12:11:39PM +0300, Andy Shevchenko wrote:
> On Fri, Aug 22, 2008 at 11:18 AM, Ignatios Souvatzis 
> <is%netbsd.org@localhost> wrote:
> >> +      * ISO/IEC 9899:1999 in 7.20.4.6 describes this special case.
> >> +      * We need to check availability of a command interpreter.
> >> +      */
> >> +     if (command == NULL) {
> >> +             if (access(_PATH_BSHELL, R_OK | X_OK) == 0)
> > assuming we want to do that: shouldn't checking for X_OK be enough?
> There is a difference between some readable file and executable one.
> 
> Actually glibc makes do_system("exit 0") and checks result for 0. I
> discussed that with my colleagues and we decide to go by above way.

Well, the "exit 0" version also checks that the shell can be executed!
eg required dynamic linker, shared libraries, system call support (etc)
are also present.

R_OK might be needed if _PATH_BSHELL_ is actually a shell script :-)

        David

-- 
David Laight: david%l8s.co.uk@localhost


Home | Main Index | Thread Index | Old Index