X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;ds=sidebyside;f=uip%2Fslocal.c;h=986583999aa763c247e09c5851eec44c98b602ad;hb=ad4522348870e01f3d95eec2dd4dc008410d4cd8;hp=b619952266032e0ab87a40bd62827f01eced5f60;hpb=7456ca0a9639bfb73899b721fe66323d90277160;p=mmh diff --git a/uip/slocal.c b/uip/slocal.c index b619952..9865839 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -1096,7 +1096,7 @@ usr_folder(int fd, char *string) vec[1] = folder; vec[2] = NULL; - return usr_pipe(fd, "rcvstore", rcvstoreproc, vec, 1); + return usr_pipe(fd, "rcvstore", "rcvstore", vec, 1); } /* @@ -1106,8 +1106,9 @@ static int 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); @@ -1132,7 +1133,9 @@ usr_pipe(int fd, char *cmd, char *pgm, char **vec, int suppress) if (fd != 3) { dup2(fd, 3); } - closefds(4); + for (n=4; npw_name); m_putenv("HOME", pw->pw_dir); m_putenv("SHELL", pw->pw_shell); + m_putenv("PATH", path); execvp(pgm, vec); _exit(-1); @@ -1159,7 +1164,7 @@ usr_pipe(int fd, char *cmd, char *pgm, char **vec, int suppress) ** 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;