# HG changeset patch # User Matt Johnston # Date 1225632842 0 # Node ID 910c2da7123528f0080f08cd2f6cfc102e820d60 # Parent 805e557fdff743e10d88de093867a75e1fad1d38 - use vfork()/_exit() for uclinux diff -r 805e557fdff7 -r 910c2da71235 scp.c --- a/scp.c Sun Nov 02 12:25:08 2008 +0000 +++ b/scp.c Sun Nov 02 13:34:02 2008 +0000 @@ -130,13 +130,22 @@ fprintf(stderr, " %s", a->list[i]); fprintf(stderr, "\n"); } - if ((pid = fork()) == -1) +#ifdef __uClinux__ + pid = vfork(); +#else + pid = fork(); +#endif /* __uClinux__ */ + if (pid == -1) fatal("do_local_cmd: fork: %s", strerror(errno)); if (pid == 0) { execvp(a->list[0], a->list); perror(a->list[0]); +#ifdef __uClinux__ + _exit(1); +#else exit(1); +#endif /* __uClinux__ */ } do_cmd_pid = pid; @@ -225,7 +234,11 @@ execvp(ssh_program, args.list); perror(ssh_program); +#ifndef __uClinux__ exit(1); +#else + _exit(1); +#endif /* __uClinux__ */ } else if (do_cmd_pid == -1) { fatal("fork: %s", strerror(errno)); }