mirror of https://github.com/wolfSSL/wolfssh.git
Changing some spots where we weren't following the pattern of setting
the error field of the ssh object and just returning WS_FATAL_ERROR.pull/134/head
parent
1ff58f0a94
commit
a28bf9902c
|
@ -1438,8 +1438,10 @@ static int GetInputData(WOLFSSH* ssh, word32 size)
|
|||
* buffer and resets idx to 0.
|
||||
*/
|
||||
if (inSz > maxLength) {
|
||||
if (GrowBuffer(&ssh->inputBuffer, size, usedLength) < 0)
|
||||
return WS_MEMORY_E;
|
||||
if (GrowBuffer(&ssh->inputBuffer, size, usedLength) < 0) {
|
||||
ssh->error = WS_MEMORY_E;
|
||||
return WS_FATAL_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
/* Put buffer data at start if not there */
|
||||
|
@ -1458,21 +1460,27 @@ static int GetInputData(WOLFSSH* ssh, word32 size)
|
|||
do {
|
||||
in = Receive(ssh,
|
||||
ssh->inputBuffer.buffer + ssh->inputBuffer.length, inSz);
|
||||
if (in == -1)
|
||||
return WS_SOCKET_ERROR_E;
|
||||
if (in == -1) {
|
||||
ssh->error = WS_SOCKET_ERROR_E;
|
||||
return WS_FATAL_ERROR;
|
||||
}
|
||||
|
||||
if (in == WS_WANT_READ)
|
||||
return WS_WANT_READ;
|
||||
if (in == WS_WANT_READ) {
|
||||
ssh->error = WS_WANT_READ;
|
||||
return WS_FATAL_ERROR;
|
||||
}
|
||||
|
||||
if (in > inSz)
|
||||
return WS_RECV_OVERFLOW_E;
|
||||
if (in > inSz) {
|
||||
ssh->error = WS_RECV_OVERFLOW_E;
|
||||
return WS_FATAL_ERROR;
|
||||
}
|
||||
|
||||
ssh->inputBuffer.length += in;
|
||||
inSz -= in;
|
||||
|
||||
} while (ssh->inputBuffer.length < size);
|
||||
|
||||
return 0;
|
||||
return WS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
|
12
src/ssh.c
12
src/ssh.c
|
@ -484,7 +484,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_KEXINIT_SENT:
|
||||
while (ssh->serverState < SERVER_KEXINIT_DONE) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_KEXINIT_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
@ -516,7 +516,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_KEXDH_INIT_SENT:
|
||||
while (ssh->isKeying) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_KEXDH_INIT_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
@ -540,7 +540,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_USERAUTH_REQUEST_SENT:
|
||||
while (ssh->serverState < SERVER_USERAUTH_REQUEST_DONE) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_USERAUTH_REQUEST_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
@ -565,7 +565,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_USERAUTH_SENT:
|
||||
while (ssh->serverState < SERVER_USERAUTH_ACCEPT_DONE) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_USERAUTH_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
@ -606,7 +606,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_CHANNEL_OPEN_SESSION_SENT:
|
||||
while (ssh->serverState < SERVER_CHANNEL_OPEN_DONE) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_CHANNEL_OPEN_SESSION_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
@ -633,7 +633,7 @@ int wolfSSH_connect(WOLFSSH* ssh)
|
|||
|
||||
case CONNECT_CLIENT_CHANNEL_REQUEST_SENT:
|
||||
while (ssh->serverState < SERVER_DONE) {
|
||||
if ( (ssh->error = DoReceive(ssh)) < WS_SUCCESS) {
|
||||
if (DoReceive(ssh) < WS_SUCCESS) {
|
||||
WLOG(WS_LOG_DEBUG, connectError,
|
||||
"CLIENT_CHANNEL_REQUEST_SENT", ssh->error);
|
||||
return WS_FATAL_ERROR;
|
||||
|
|
|
@ -2994,7 +2994,7 @@ int wolfSSH_SFTP_connect(WOLFSSH* ssh)
|
|||
|
||||
case SFTP_RECV:
|
||||
case SFTP_EXT:
|
||||
if ((ssh->error = SFTP_ClientRecvInit(ssh)) != WS_SUCCESS) {
|
||||
if (SFTP_ClientRecvInit(ssh) != WS_SUCCESS) {
|
||||
return WS_FATAL_ERROR;
|
||||
}
|
||||
ssh->sftpState = SFTP_DONE;
|
||||
|
|
Loading…
Reference in New Issue