Loading lib/ssh.c +21 −20 Original line number Diff line number Diff line Loading @@ -108,12 +108,14 @@ have their definition hidden well */ #endif #define sftp_libssh2_last_error(s) curlx_ultosi(libssh2_sftp_last_error(s)) #define sftp_libssh2_realpath(s,p,t,m) \ libssh2_sftp_symlink_ex((s), (p), curlx_uztoui(strlen(p)), \ (t), (m), LIBSSH2_SFTP_REALPATH) /* Local functions: */ static const char *sftp_libssh2_strerror(unsigned long err); static const char *sftp_libssh2_strerror(int err); static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc); static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc); static LIBSSH2_FREE_FUNC(my_libssh2_free); Loading Loading @@ -1004,7 +1006,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) } else { /* Return the error type */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); result = sftp_libssh2_error_to_CURLE(err); sshc->actualcode = result?result:CURLE_SSH; DEBUGF(infof(data, "error = %d makes libcurl = %d\n", Loading Loading @@ -1282,7 +1284,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { /* get those attributes */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading Loading @@ -1361,7 +1363,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1386,7 +1388,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1409,7 +1411,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "mkdir command failed: %s", sftp_libssh2_strerror(err)); Loading @@ -1434,7 +1436,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1455,7 +1457,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "rmdir command failed: %s", sftp_libssh2_strerror(err)); Loading @@ -1474,7 +1476,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "rm command failed: %s", sftp_libssh2_strerror(err)); Loading Loading @@ -1557,7 +1559,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) if(LIBSSH2_ERROR_SFTP_PROTOCOL == rc) /* only when there was an SFTP protocol error can we extract the sftp error! */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); else err = -1; /* not an sftp error at all */ Loading Loading @@ -1711,17 +1713,16 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) *sshc->slash_pos = '/'; ++sshc->slash_pos; if(rc == -1) { unsigned int sftp_err = 0; /* * Abort if failure wasn't that the dir already exists or the * permission was denied (creation might succeed further down the * path) - retry on unspecific FAILURE also */ sftp_err = (unsigned int)(libssh2_sftp_last_error(sshc->sftp_session)); if((sftp_err != LIBSSH2_FX_FILE_ALREADY_EXISTS) && (sftp_err != LIBSSH2_FX_FAILURE) && (sftp_err != LIBSSH2_FX_PERMISSION_DENIED)) { result = sftp_libssh2_error_to_CURLE(sftp_err); err = sftp_libssh2_last_error(sshc->sftp_session); if((err != LIBSSH2_FX_FILE_ALREADY_EXISTS) && (err != LIBSSH2_FX_FAILURE) && (err != LIBSSH2_FX_PERMISSION_DENIED)) { result = sftp_libssh2_error_to_CURLE(err); state(conn, SSH_SFTP_CLOSE); sshc->actualcode = result?result:CURLE_SSH; break; Loading @@ -1747,7 +1748,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); failf(data, "Could not open directory for reading: %s", sftp_libssh2_strerror(err)); state(conn, SSH_SFTP_CLOSE); Loading Loading @@ -1860,7 +1861,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(sshc->readdir_len <= 0) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); result = sftp_libssh2_error_to_CURLE(err); sshc->actualcode = result?result:CURLE_SSH; failf(data, "Could not open remote file for reading: %s :: %d", Loading Loading @@ -1975,7 +1976,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); failf(data, "Could not open remote file for reading: %s", sftp_libssh2_strerror(err)); state(conn, SSH_SFTP_CLOSE); Loading Loading @@ -3165,7 +3166,7 @@ get_pathname(const char **cpp, char **path) } static const char *sftp_libssh2_strerror(unsigned long err) static const char *sftp_libssh2_strerror(int err) { switch (err) { case LIBSSH2_FX_NO_SUCH_FILE: Loading lib/warnless.c +19 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,25 @@ unsigned char curlx_ultouc(unsigned long ulnum) #endif } /* ** unsigned long to signed int */ int curlx_ultosi(unsigned long ulnum) { #ifdef __INTEL_COMPILER # pragma warning(push) # pragma warning(disable:810) /* conversion may lose significant bits */ #endif DEBUGASSERT(ulnum <= (unsigned long) CURL_MASK_SINT); return (int)(ulnum & (unsigned long) CURL_MASK_SINT); #ifdef __INTEL_COMPILER # pragma warning(pop) #endif } /* ** unsigned size_t to signed int */ Loading lib/warnless.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ unsigned short curlx_ultous(unsigned long ulnum); unsigned char curlx_ultouc(unsigned long ulnum); int curlx_ultosi(unsigned long ulnum); int curlx_uztosi(size_t uznum); unsigned long curlx_uztoul(size_t uznum); Loading Loading
lib/ssh.c +21 −20 Original line number Diff line number Diff line Loading @@ -108,12 +108,14 @@ have their definition hidden well */ #endif #define sftp_libssh2_last_error(s) curlx_ultosi(libssh2_sftp_last_error(s)) #define sftp_libssh2_realpath(s,p,t,m) \ libssh2_sftp_symlink_ex((s), (p), curlx_uztoui(strlen(p)), \ (t), (m), LIBSSH2_SFTP_REALPATH) /* Local functions: */ static const char *sftp_libssh2_strerror(unsigned long err); static const char *sftp_libssh2_strerror(int err); static LIBSSH2_ALLOC_FUNC(my_libssh2_malloc); static LIBSSH2_REALLOC_FUNC(my_libssh2_realloc); static LIBSSH2_FREE_FUNC(my_libssh2_free); Loading Loading @@ -1004,7 +1006,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) } else { /* Return the error type */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); result = sftp_libssh2_error_to_CURLE(err); sshc->actualcode = result?result:CURLE_SSH; DEBUGF(infof(data, "error = %d makes libcurl = %d\n", Loading Loading @@ -1282,7 +1284,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { /* get those attributes */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading Loading @@ -1361,7 +1363,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1386,7 +1388,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1409,7 +1411,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "mkdir command failed: %s", sftp_libssh2_strerror(err)); Loading @@ -1434,7 +1436,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; Curl_safefree(sshc->quote_path2); Loading @@ -1455,7 +1457,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "rmdir command failed: %s", sftp_libssh2_strerror(err)); Loading @@ -1474,7 +1476,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(rc != 0 && !sshc->acceptfail) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); Curl_safefree(sshc->quote_path1); sshc->quote_path1 = NULL; failf(data, "rm command failed: %s", sftp_libssh2_strerror(err)); Loading Loading @@ -1557,7 +1559,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) if(LIBSSH2_ERROR_SFTP_PROTOCOL == rc) /* only when there was an SFTP protocol error can we extract the sftp error! */ err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); else err = -1; /* not an sftp error at all */ Loading Loading @@ -1711,17 +1713,16 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) *sshc->slash_pos = '/'; ++sshc->slash_pos; if(rc == -1) { unsigned int sftp_err = 0; /* * Abort if failure wasn't that the dir already exists or the * permission was denied (creation might succeed further down the * path) - retry on unspecific FAILURE also */ sftp_err = (unsigned int)(libssh2_sftp_last_error(sshc->sftp_session)); if((sftp_err != LIBSSH2_FX_FILE_ALREADY_EXISTS) && (sftp_err != LIBSSH2_FX_FAILURE) && (sftp_err != LIBSSH2_FX_PERMISSION_DENIED)) { result = sftp_libssh2_error_to_CURLE(sftp_err); err = sftp_libssh2_last_error(sshc->sftp_session); if((err != LIBSSH2_FX_FILE_ALREADY_EXISTS) && (err != LIBSSH2_FX_FAILURE) && (err != LIBSSH2_FX_PERMISSION_DENIED)) { result = sftp_libssh2_error_to_CURLE(err); state(conn, SSH_SFTP_CLOSE); sshc->actualcode = result?result:CURLE_SSH; break; Loading @@ -1747,7 +1748,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); failf(data, "Could not open directory for reading: %s", sftp_libssh2_strerror(err)); state(conn, SSH_SFTP_CLOSE); Loading Loading @@ -1860,7 +1861,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else if(sshc->readdir_len <= 0) { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); result = sftp_libssh2_error_to_CURLE(err); sshc->actualcode = result?result:CURLE_SSH; failf(data, "Could not open remote file for reading: %s :: %d", Loading Loading @@ -1975,7 +1976,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) break; } else { err = (int)(libssh2_sftp_last_error(sshc->sftp_session)); err = sftp_libssh2_last_error(sshc->sftp_session); failf(data, "Could not open remote file for reading: %s", sftp_libssh2_strerror(err)); state(conn, SSH_SFTP_CLOSE); Loading Loading @@ -3165,7 +3166,7 @@ get_pathname(const char **cpp, char **path) } static const char *sftp_libssh2_strerror(unsigned long err) static const char *sftp_libssh2_strerror(int err) { switch (err) { case LIBSSH2_FX_NO_SUCH_FILE: Loading
lib/warnless.c +19 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,25 @@ unsigned char curlx_ultouc(unsigned long ulnum) #endif } /* ** unsigned long to signed int */ int curlx_ultosi(unsigned long ulnum) { #ifdef __INTEL_COMPILER # pragma warning(push) # pragma warning(disable:810) /* conversion may lose significant bits */ #endif DEBUGASSERT(ulnum <= (unsigned long) CURL_MASK_SINT); return (int)(ulnum & (unsigned long) CURL_MASK_SINT); #ifdef __INTEL_COMPILER # pragma warning(pop) #endif } /* ** unsigned size_t to signed int */ Loading
lib/warnless.h +2 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,8 @@ unsigned short curlx_ultous(unsigned long ulnum); unsigned char curlx_ultouc(unsigned long ulnum); int curlx_ultosi(unsigned long ulnum); int curlx_uztosi(size_t uznum); unsigned long curlx_uztoul(size_t uznum); Loading