fails. Fix that, and switch to vfork.
int olderrno;
int fd;
- if ((pid = fork()) > 0) {
+ if ((pid = vfork()) > 0) {
return;
} else if (pid == 0) {
snprintf(command, PATH_MAX, "%s/%s", home, ".mdeliver-processor");
execl(command, command, newfn, NULL);
if (errno == ENOENT) {
/* Not having a processor is not an error. */
- return;
+ _exit(0);
}
fail = "exec";
} else {
- fail = "fork";
+ fail = "vfork";
}
olderrno = errno;
fsync(fd);
close(fd);
}
+
+ _exit(0);
}
int