If execvp fails, shouldn't we ensure that the child returns an
appropriate exit value? Wouldn't this also fix the crash we currently 
experience if execvp fails?

#ifndef __EMX__
        pid_t cpid = ::fork();
        if (cpid == 0) { // child
                execvp(syscmd, argv);
                // If something goes wrong, we end up here
                string args;
                int i = 0;
                while (argv[i] != 0)
                        args += string(" ") + argv[i++];
                lyxerr << "execvp of \"" << syscmd << args << "\" failed: "
                       << strerror(errno) << endl;
+               _exit(1);
        }
#else

I see that nobody has commented on my zombies patch. 
Shall I just apply it?

Angus

Reply via email to