Spotted by Tim Kosse: we were returning an incorrect path in canonify() when
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 22 Oct 2006 20:19:55 +0000 (20:19 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Sun, 22 Oct 2006 20:19:55 +0000 (20:19 +0000)
we couldn't get any sense out of the server.

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

psftp.c

diff --git a/psftp.c b/psftp.c
index d07ee8b..f77a88e 100644 (file)
--- a/psftp.c
+++ b/psftp.c
@@ -128,8 +128,12 @@ char *canonify(char *name)
        assert(rreq == req);
        canonname = fxp_realpath_recv(pktin, rreq);
 
-       if (!canonname)
-           return fullname;           /* even that failed; give up */
+       if (!canonname) {
+           /* Even that failed. Restore our best guess at the
+            * constructed filename and give up */
+           fullname[i] = '/';  /* restore slash and last component */
+           return fullname;
+       }
 
        /*
         * We have a canonical name for all but the last path