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.
This commit is contained in:
James Housley 2007-06-14 10:36:53 +00:00
parent 235632ed2c
commit 82d3f97659
1 changed files with 6 additions and 0 deletions

View File

@ -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;