rem: ssh_args[argctr++] = "ssh";
add: ssh_args[argctr++] = ssh_cmd;
context: static int start_ssh(char *host){    int inpipe[2];    int outpipe[2];    int i;    int pid;    if (pipe(inpipe) == -1 || pipe(outpipe) == -1) {        perror("failed to create pipe");        return -1;    }    infd = inpipe[0];    outfd = outpipe[1];    pid = fork();    if (pid == -1) {        perror("failed to fork");        return -1;    } else if (pid == 0) {        int argctr = 0;        char *ssh_args[sizeof(ssh_opts)/sizeof(struct opt) + 32];        if (dup2(outpipe[0], 0) == -1 || dup2(inpipe[1], 1) == -1) {            perror("failed to redirect input/output");            exit(1);        }        close(inpipe[0]);        close(inpipe[1]);        close(outpipe[0]);        close(outpipe[1]);        ssh_args[argctr++] = "ssh";        ssh_args[argctr++] = "-2";        ssh_args[argctr++] = "-x";        ssh_args[argctr++] = "-a";        ssh_args[argctr++] = "-oClearAllForwardings=yes";        for (i = 0; ssh_opts[i].optname != NULL; i++) {            if (ssh_opts[i].present) {                char *val = ssh_opts[i].value;                char *sopt = g_strdup_printf("-o%s=%s", ssh_opts[i].optname,                                             val ? val : "");                ssh_args[argctr++] = sopt;            }        }        ssh_args[argctr++] = host;        ssh_args[argctr++] = "-s";        ssh_args[argctr++] = "sftp";        ssh_args[argctr++] = NULL;        execvp("ssh", ssh_args);        exit(1);    }    close(inpipe[1]);    close(outpipe[0]);    return 0;}