Fix silly segfault due to PSFTP thinking connection is fine even if
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 27 Feb 2002 22:20:30 +0000 (22:20 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 27 Feb 2002 22:20:30 +0000 (22:20 +0000)
fxp_init() fails to get initial packet.

git-svn-id: svn://svn.tartarus.org/sgt/putty@1565 cda61777-01e9-0310-a592-d414129be87e

psftp.c

diff --git a/psftp.c b/psftp.c
index 302e1a7..2815d35 100644 (file)
--- a/psftp.c
+++ b/psftp.c
@@ -1361,7 +1361,7 @@ struct sftp_command *sftp_getcmd(FILE *fp, int mode, int modeflags)
     return cmd;
 }
 
-static void do_sftp_init(void)
+static int do_sftp_init(void)
 {
     /*
      * Do protocol initialisation. 
@@ -1369,7 +1369,7 @@ static void do_sftp_init(void)
     if (!fxp_init()) {
        fprintf(stderr,
                "Fatal: unable to initialise SFTP: %s\n", fxp_error());
-       return;
+       return 1;                      /* failure */
     }
 
     /*
@@ -1385,6 +1385,7 @@ static void do_sftp_init(void)
        printf("Remote working directory is %s\n", homedir);
     }
     pwd = dupstr(homedir);
+    return 0;
 }
 
 void do_sftp(int mode, int modeflags, char *batchfile)
@@ -1847,7 +1848,8 @@ int main(int argc, char *argv[])
     if (userhost) {
        if (psftp_connect(userhost, user, portnumber))
            return 1;
-       do_sftp_init();
+       if (do_sftp_init())
+           return 1;
     } else {
        printf("psftp: no hostname specified; use \"open host.name\""
            " to connect\n");