{
CURLcode result = CURLE_OK;
int rc = libssh2_sftp_readdir_ex(sshc->sftp_handle,
- sshp->readdir_filename,
- PATH_MAX,
- sshp->readdir_longentry,
- PATH_MAX,
+ sshp->readdir_filename, CURL_PATH_MAX,
+ sshp->readdir_longentry, CURL_PATH_MAX,
&sshp->readdir_attrs);
if(rc == LIBSSH2_ERROR_EAGAIN) {
*blockp = TRUE;
if((sshp->readdir_attrs.flags & LIBSSH2_SFTP_ATTR_PERMISSIONS) &&
((sshp->readdir_attrs.permissions & LIBSSH2_SFTP_S_IFMT) ==
LIBSSH2_SFTP_S_IFLNK)) {
- Curl_dyn_init(&sshp->readdir_link, PATH_MAX);
+ Curl_dyn_init(&sshp->readdir_link, CURL_PATH_MAX);
result = Curl_dyn_addf(&sshp->readdir_link, "%s%s", sshp->path,
sshp->readdir_filename);
state(data, SSH_SFTP_READDIR_LINK);
}
}
else if(rc == 0) {
- Curl_safefree(sshp->readdir_filename);
- Curl_safefree(sshp->readdir_longentry);
state(data, SSH_SFTP_READDIR_DONE);
}
else if(rc < 0) {
failf(data, "Could not open remote file for reading: %s :: %d",
sftp_libssh2_strerror(sftperr),
libssh2_session_last_errno(sshc->ssh_session));
- Curl_safefree(sshp->readdir_filename);
- Curl_safefree(sshp->readdir_longentry);
state(data, SSH_SFTP_CLOSE);
}
return result;
case SSH_SFTP_REALPATH:
{
- char tempHome[PATH_MAX];
+ char tempHome[CURL_PATH_MAX];
/*
* Get the "home" directory
*/
rc = sftp_libssh2_realpath(sshc->sftp_session, ".",
- tempHome, PATH_MAX-1);
+ tempHome, CURL_PATH_MAX-1);
if(rc == LIBSSH2_ERROR_EAGAIN) {
break;
}
sshc->actualcode = result ? result : CURLE_SSH;
break;
}
- sshp->readdir_filename = malloc(PATH_MAX + 1);
- if(!sshp->readdir_filename) {
- state(data, SSH_SFTP_CLOSE);
- sshc->actualcode = CURLE_OUT_OF_MEMORY;
- break;
- }
- sshp->readdir_longentry = malloc(PATH_MAX + 1);
- if(!sshp->readdir_longentry) {
- Curl_safefree(sshp->readdir_filename);
- state(data, SSH_SFTP_CLOSE);
- sshc->actualcode = CURLE_OUT_OF_MEMORY;
- break;
- }
- Curl_dyn_init(&sshp->readdir, PATH_MAX * 2);
+ Curl_dyn_init(&sshp->readdir, CURL_PATH_MAX * 2);
state(data, SSH_SFTP_READDIR);
break;
(unsigned int)
Curl_dyn_len(&sshp->readdir_link),
sshp->readdir_filename,
- PATH_MAX, LIBSSH2_SFTP_READLINK);
+ CURL_PATH_MAX, LIBSSH2_SFTP_READLINK);
if(rc == LIBSSH2_ERROR_EAGAIN) {
break;
}
result = Curl_dyn_addf(&sshp->readdir, " -> %s", sshp->readdir_filename);
if(result) {
- Curl_safefree(sshp->readdir_filename);
- Curl_safefree(sshp->readdir_longentry);
state(data, SSH_SFTP_CLOSE);
sshc->actualcode = result;
break;
break;
}
sshc->sftp_handle = NULL;
- Curl_safefree(sshp->readdir_filename);
- Curl_safefree(sshp->readdir_longentry);
/* no data to transfer */
Curl_xfer_setup_nop(data);
result = status;
Curl_safefree(sshp->path);
- Curl_safefree(sshp->readdir_filename);
- Curl_safefree(sshp->readdir_longentry);
Curl_dyn_free(&sshp->readdir);
if(Curl_pgrsDone(data))
#include <wolfssh/wolfsftp.h>
#endif
+#include "curl_path.h"
+
/****************************************************************************
* SSH unique setup
***************************************************************************/
SSH_LAST /* never used */
} sshstate;
+#define CURL_PATH_MAX 1024
+
/* this struct is used in the HandleData struct which is part of the
Curl_easy, which means this is used on a per-easy handle basis.
Everything that is strictly related to a connection is banned from this
#ifdef USE_LIBSSH2
struct dynbuf readdir_link;
struct dynbuf readdir;
- char *readdir_filename;
- char *readdir_longentry;
+ char readdir_filename[CURL_PATH_MAX + 1];
+ char readdir_longentry[CURL_PATH_MAX + 1];
LIBSSH2_SFTP_ATTRIBUTES quote_attrs; /* used by the SFTP_QUOTE state */