From 82d3f97659d48383ca6b4816fc29a11d1e0ae7ee Mon Sep 17 00:00:00 2001 From: James Housley Date: Thu, 14 Jun 2007 10:36:53 +0000 Subject: [PATCH] BUG FIX: When reading a directory listing that contains symlinks with the latest libssh2, the listing would be truncated at the symlink. Fix by looping on LIBSSH2_ERROR_EAGAIN, like the rest of the calls. --- lib/ssh.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/ssh.c b/lib/ssh.c index e7935ad24..bc7d3eb41 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -1573,8 +1573,14 @@ CURLcode Curl_sftp_do(struct connectdata *conn, bool *done) char linkPath[PATH_MAX + 1]; snprintf(linkPath, PATH_MAX, "%s%s", sftp->path, filename); +#if (LIBSSH2_APINO >= 200706012030) + while ((len = libssh2_sftp_readlink(sftp->sftp_session, linkPath, + filename, PATH_MAX)) == + LIBSSH2_ERROR_EAGAIN); +#else /* !(LIBSSH2_APINO >= 200706012030) */ len = libssh2_sftp_readlink(sftp->sftp_session, linkPath, filename, PATH_MAX); +#endif /* !(LIBSSH2_APINO >= 200706012030) */ line = realloc(line, totalLen + 4 + len); if (!line) return CURLE_OUT_OF_MEMORY;