From 98dd3cb9f25028e883a37cb812ace1fd10d528e8 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 27 Feb 2002 22:20:30 +0000 Subject: [PATCH] Fix silly segfault due to PSFTP thinking connection is fine even if fxp_init() fails to get initial packet. [originally from svn r1565] --- psftp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/psftp.c b/psftp.c index 302e1a73..2815d35c 100644 --- 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");