Commit 82d3f976 authored by James Housley's avatar James Housley
Browse files

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.
parent 235632ed
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;