pipe(toslave); pipe(frslave); if (fork() == 0) { int fd; close(0); dup(toslave[0]); close(1); dup(frslave[1]); (void)setsid(); /* become session leader and */ /* lose controlling tty */ fd = open("/dev/console", O_RDWR); #ifndef hpux (void)ioctl(fd,TIOCSCTTY,0); #endif free(argv[0]); argv[0] = (char *)malloc(5 * sizeof(char)); sprintf(argv[0],"ssh"); execv("/usr/bin/ssh", argv); fprintf(stderr,"Bad exec (%u)\n", errno); exit(0); } write(toslave[1],PASSWORD, strlen(PASSWORD)); if (! strncmp("-v", argv[1])) exit(wait(NULL)); if (! strncmp("-k", argv[1])) exit(wait(NULL)); num=read(frslave[0],buf,359); buf[num]='\0'; printf("%s", buf); exit(wait(NULL)); }