mirror of https://github.com/moparisthebest/curl
SFTP: set a generic error when no SFTP one exists...
... as otherwise we could get a 0 which would count as no error and we'd wrongly continue and could end up segfaulting. Bug: https://curl.haxx.se/mail/lib-2016-06/0052.html Reported-by: 暖和的和暖
This commit is contained in:
parent
614b503423
commit
b6ddc0ac07
|
@ -1161,8 +1161,13 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
|
||||||
else {
|
else {
|
||||||
/* Return the error type */
|
/* Return the error type */
|
||||||
err = sftp_libssh2_last_error(sshc->sftp_session);
|
err = sftp_libssh2_last_error(sshc->sftp_session);
|
||||||
result = sftp_libssh2_error_to_CURLE(err);
|
if(err)
|
||||||
sshc->actualcode = result?result:CURLE_SSH;
|
result = sftp_libssh2_error_to_CURLE(err);
|
||||||
|
else
|
||||||
|
/* in this case, the error wasn't in the SFTP level but for example
|
||||||
|
a time-out or similar */
|
||||||
|
result = CURLE_SSH;
|
||||||
|
sshc->actualcode = result;
|
||||||
DEBUGF(infof(data, "error = %d makes libcurl = %d\n",
|
DEBUGF(infof(data, "error = %d makes libcurl = %d\n",
|
||||||
err, (int)result));
|
err, (int)result));
|
||||||
state(conn, SSH_STOP);
|
state(conn, SSH_STOP);
|
||||||
|
|
Loading…
Reference in New Issue