vec[1] = folder;
vec[2] = NULL;
- return usr_pipe(fd, "rcvstore", rcvstoreproc, vec, 1);
+ return usr_pipe(fd, "rcvstore", "rcvstore", vec, 1);
}
/*
usr_pipe(int fd, char *cmd, char *pgm, char **vec, int suppress)
{
pid_t child_id;
- int bytes, seconds, status;
+ int bytes, seconds, status, n;
struct stat st;
+ char *path;
if (verbose && !suppress) {
verbose_printf("delivering to pipe \"%s\"", cmd);
if (fd != 3) {
dup2(fd, 3);
}
- closefds(4);
+ for (n=4; n<OPEN_MAX; n++) {
+ close(n);
+ }
#ifdef TIOCNOTTY
if ((fd = open("/dev/tty", O_RDWR)) != -1) {
/* put in own process group */
setpgid((pid_t) 0, getpid());
+ path = getenv("PATH");
*environ = NULL;
m_putenv("USER", pw->pw_name);
m_putenv("HOME", pw->pw_dir);
m_putenv("SHELL", pw->pw_shell);
+ m_putenv("PATH", path);
execvp(pgm, vec);
_exit(-1);
** Ruthlessly kill the child and anything
** else in its process group.
*/
- KILLPG(child_id, SIGKILL);
+ kill(-child_id, SIGKILL);
if (verbose)
verbose_printf(", timed-out; terminated\n");
return -1;